Index: /trunk/ccl/lib/db-io.lisp
===================================================================
--- /trunk/ccl/lib/db-io.lisp	(revision 5958)
+++ /trunk/ccl/lib/db-io.lisp	(revision 5959)
@@ -828,9 +828,5 @@
                                        nil))))))
 
-;;; For backward compatibility: the implementation really shouldn't define
-;;; #?.  Nuke this in a future release.
-;;; Now, for instance.
-#+no
-(set-dispatch-macro-character #\# #\? (get-dispatch-macro-character #\# #\&))
+
               
 
@@ -841,6 +837,11 @@
   req-args
   flags
-  protocol-methods)
-
+  protocol-methods
+  lisp-name
+  selector)
+
+
+
+   
 (defstruct objc-method-info
   message-info
@@ -851,4 +852,5 @@
   flags
   signature
+  signature-info
   )
 
@@ -1509,11 +1511,17 @@
       (#.encoded-type-signed-16 (values (svref *signed-integer-types* 16) q))
       (#.encoded-type-unsigned-16 (values (svref *unsigned-integer-types* 16) q))
-      (#.encoded-type-signed-n (values (make-foreign-integer-type
-                                          :signed t
-                                          :bits (%get-unsigned-byte buf q))
+      (#.encoded-type-signed-n (values (let* ((bits (%get-unsigned-byte buf q)))
+                                         (if (<= bits 32)
+                                           (svref *signed-integer-types* bits)
+                                           (make-foreign-integer-type
+                                            :signed t
+                                            :bits bits)))
                                          (1+ q)))
-      (#.encoded-type-unsigned-n (values (make-foreign-integer-type
+      (#.encoded-type-unsigned-n (values (let* ((bits (%get-unsigned-byte buf q)))
+                                         (if (<= bits 32)
+                                           (svref *unsigned-integer-types* bits)
+                                           (make-foreign-integer-type
                                             :signed nil
-                                            :bits (%get-unsigned-byte buf q))
+                                            :bits bits)))
                                            (1+ q)))
       (#.encoded-type-single-float (values (parse-foreign-type :float) q))
@@ -1638,5 +1646,5 @@
           (error "Unknown alignment: ~S"
                  (unparse-foreign-type field-type)))
-        (setq overall-alignment (max overall-alignment alignment))
+        (setq overall-alignment (max overall-alignment (if (= alignment 1) 32 alignment)))
         (ecase kind
           (:struct (let* ((imported-offset (foreign-record-field-offset field))
