Index: /trunk/ccl/level-1/l1-clos-boot.lisp
===================================================================
--- /trunk/ccl/level-1/l1-clos-boot.lisp	(revision 5461)
+++ /trunk/ccl/level-1/l1-clos-boot.lisp	(revision 5462)
@@ -668,5 +668,5 @@
     (setf (fdefinition function-name) gf))
 
-(defun canonicalize-specializers (specializers)
+(defun canonicalize-specializers (specializers &optional (copy t))
   (flet ((canonicalize-specializer (spec)
            (if (specializer-p spec)
@@ -680,5 +680,9 @@
                  (intern-eql-specializer (cadr spec))
                  (error "Unknown specializer form ~s" spec))))))
-    (mapcar #'canonicalize-specializer specializers)))
+    (if (and (not copy)
+             (dolist (s specializers t)
+               (unless (specializer-p s) (return nil))))
+      specializers
+      (mapcar #'canonicalize-specializer specializers))))
 
 (defun ensure-method (name specializers &rest keys &key (documentation nil doc-p) qualifiers
@@ -2300,5 +2304,5 @@
 	    s)
 	(when (equal q method-qualifiers)
-	  (dolist (spec specializers #|(canonicalize-specializers specializers)|#
+	  (dolist (spec (canonicalize-specializers specializers nil)
 		   (if (null ss)
 		     (return-from find-method m)
