Index: /trunk/ccl/level-1/l1-dcode.lisp
===================================================================
--- /trunk/ccl/level-1/l1-dcode.lisp	(revision 730)
+++ /trunk/ccl/level-1/l1-dcode.lisp	(revision 731)
@@ -73,9 +73,11 @@
       (and method
            (let* ((method-lambda-list (%method-lambda-list method))
-                  (method-has-&key (member '&key method-lambda-list)))
+                  (method-has-&key (member '&key method-lambda-list))
+                  (method-has-&allow-other-keys
+                   (member '&allow-other-keys method-lambda-list)))
              (if method-has-&key
-               ;; Treat gf lambda-list as (... &key &allow-other-keys)
                (nconc (ldiff method-lambda-list (cdr method-has-&key))
-                      '(&allow-other-keys))
+                      (if method-has-&allow-other-keys
+                        '(&allow-other-keys)))
                method-lambda-list)))
       gf-ll)))
@@ -125,5 +127,5 @@
                               (logand $lfbits-args-mask newbits)))))
     (when new-method
-          (check-defmethod-congruency gf new-method))))
+      (check-defmethod-congruency gf new-method))))
         
 (defun %gf-name (gf &optional (new-name nil new-name-p))
