Index: /branches/working-0711/ccl/level-1/l1-clos.lisp
===================================================================
--- /branches/working-0711/ccl/level-1/l1-clos.lisp	(revision 7788)
+++ /branches/working-0711/ccl/level-1/l1-clos.lisp	(revision 7789)
@@ -1869,6 +1869,9 @@
 ;;; Return a lambda form or NIL.
 (defun make-instantiate-lambda-for-class-cell (cell)
-  (let* ((class (class-cell-class cell)))
+  (let* ((class (class-cell-class cell)))   
     (when (and (typep class 'standard-class)
+               (progn (unless (class-finalized-p class)
+                        (finalize-inheritance class))
+                      t)
                (null (cdr (compute-applicable-methods #'allocate-instance (list class))))
                (let* ((proto (class-prototype class)))
@@ -1946,9 +1949,13 @@
 ;;; involving reader methods.
 
-(defun snap-reader-methods (&key known-sealed-world (check-conflicts t))
+(defun snap-reader-methods (&key known-sealed-world
+                                 (check-conflicts t)
+                                 (optimize-make-instance t))
   (declare (ignore check-conflicts))
   (unless known-sealed-world
     (cerror "Proceed, if it's known that no new classes or methods will be defined."
             "Optimizing reader methods in this way is only safe if it's known that no new classes or methods will be defined."))
+  (when optimize-make-instance
+    (optimize-named-class-make-instance-methods))
   (let* ((ngf 0)
          (nwin 0))
