diff --git a/src/general-info/release-20d.txt b/src/general-info/release-20d.txt
index fc525cc1337c1f3ad0975124fd089df7550c34b4..176d102cebc82886e174a0067891c07f0e6737f3 100644
--- a/src/general-info/release-20d.txt
+++ b/src/general-info/release-20d.txt
@@ -57,6 +57,8 @@ New in this release:
       returned instead.
     * Some VOP costs were incorrect which prevented the fast complex
       double-float multiplier from being used when sse3 is available. 
+    * External format for UTF-32 was generating an error when
+      converting octets to a string.
 
   * Trac Tickets:
     * #50: Print/read error with make-pathname.
diff --git a/src/pcl/simple-streams/external-formats/utf-32.lisp b/src/pcl/simple-streams/external-formats/utf-32.lisp
index 469327e4895bec595701bff606ae11e977deedb1..1fd3cf1d65052e01c9cd9ca27a7aa570e3b4a8d7 100644
--- a/src/pcl/simple-streams/external-formats/utf-32.lisp
+++ b/src/pcl/simple-streams/external-formats/utf-32.lisp
@@ -38,7 +38,7 @@ By default, illegal inputs and illegal outputs are replaced by the
 Unicode replacement character.")
   ()
 
-  (octets-to-code (state input unput code error c1 c2 c3 c4 st wd)
+  (octets-to-code (state input unput error code c1 c2 c3 c4 st wd)
     `(block nil
        (when (null ,state) (setf ,state 0))
        (tagbody