Index: /trunk/ccl/lib/macros.lisp
===================================================================
--- /trunk/ccl/lib/macros.lisp	(revision 403)
+++ /trunk/ccl/lib/macros.lisp	(revision 404)
@@ -2530,6 +2530,8 @@
       (if (typep ftype 'foreign-record-type)
         (setq result (nconc result (%foreign-record-field-forms name ftype record-name inits)))
-        (when inits
-	  (if (and ftype (null (cdr inits)))
+	(progn
+	  ;(setq result (nconc result `((%assert-macptr-ftype ,name ,ftype))))
+	  (when inits
+	    (if (and ftype (null (cdr inits)))
               (setq result
                     (nconc result
@@ -2537,5 +2539,5 @@
 			      ,(car inits)))))
               (error "Unexpected or malformed initialization forms: ~s in field type: ~s"
-                     inits record-name)))))))
+                     inits record-name))))))))
 
 (defun %foreign-record-field-forms (ptr record-type record-name inits)
@@ -2545,5 +2547,8 @@
   (let* ((result ()))
     (do* ()
-	 ((null inits) (nreverse result))
+	 ((null inits)
+	  `((progn
+	      ;(%assert-macptr-ftype ,ptr ,record-type)
+	      ,@(nreverse result))))
       (let* ((accessor (decompose-record-accessor (pop inits)))
 	     (valform (pop inits)))
