Index: /trunk/source/lib/foreign-types.lisp
===================================================================
--- /trunk/source/lib/foreign-types.lisp	(revision 14741)
+++ /trunk/source/lib/foreign-types.lisp	(revision 14742)
@@ -1864,16 +1864,19 @@
         (declare (dynamic-extent pair))
         (ensure-foreign-type-bits type)
-        (or (gethash pair (ftd-array-types *target-ftd*))
-            (setf (gethash (cons type dims) (ftd-array-types *target-ftd*))
-                  
-                  (make-foreign-array-type
-                   :element-type type
-                   :dimensions dims
-                   :alignment (foreign-type-alignment type)
-                   :bits (if (and (ensure-foreign-type-bits type)
-                                  (every #'integerp dims))
-                           (* (align-offset (foreign-type-bits type)
-                                            (foreign-type-alignment type))
-                              (reduce #'* dims))))))))
+        (let* ((atype 
+                (or (gethash pair (ftd-array-types *target-ftd*))
+                    (setf (gethash (cons type dims) (ftd-array-types *target-ftd*))
+                          
+                          (make-foreign-array-type
+                           :element-type type
+                           :dimensions dims
+                           :alignment (foreign-type-alignment type)
+                           :bits (if (and (ensure-foreign-type-bits type)
+                                          (every #'integerp dims))
+                                   (* (align-offset (foreign-type-bits type)
+                                                    (foreign-type-alignment type))
+                                      (reduce #'* dims))))))))
+          (note-foreign-type-ordinal atype *target-ftd*)
+          atype)))
 
     (def-foreign-type-translator * (to)
