diff --git a/pcl/dfun.lisp b/pcl/dfun.lisp
index 552b630e150ceef62534d95713e40f802a64baa7..84b1adea0009740ec1a816883749d096bb88fa19 100644
--- a/pcl/dfun.lisp
+++ b/pcl/dfun.lisp
@@ -25,7 +25,7 @@
 ;;; *************************************************************************
 
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/dfun.lisp,v 1.23 2003/04/13 16:39:22 gerd Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/dfun.lisp,v 1.24 2003/04/14 21:45:22 gerd Exp $")
 
 (in-package :pcl)
 
@@ -1120,7 +1120,9 @@ And so, we are saved.
 (defvar *cmv-stack* ())
 
 (defun cache-miss-values-internal (gf arg-info wrappers classes types state)
-  (if (and wrappers (equal wrappers (cdr (assq gf *cmv-stack*))))
+  (if (and (eq state 'accessor)
+	   wrappers
+	   (equal wrappers (cdr (assq gf *cmv-stack*))))
       (break-vicious-metacircle gf classes arg-info)
       (let ((*cmv-stack* (cons (cons gf wrappers) *cmv-stack*))
 	    (cam-std-p (or (null arg-info)
diff --git a/pcl/rt/defgeneric.lisp b/pcl/rt/defgeneric.lisp
index 621e8df843fc3e19c34f95c6cdb3fa0bfbb70487..033982cb339b25e3ef71bbf5cb3c579b2b2b9433 100644
--- a/pcl/rt/defgeneric.lisp
+++ b/pcl/rt/defgeneric.lisp
@@ -28,7 +28,7 @@
 ;;; DAMAGE.
 
 #+cmu
-(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/rt/defgeneric.lisp,v 1.3 2003/04/13 16:39:22 gerd Exp $")
+(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/rt/defgeneric.lisp,v 1.4 2003/04/14 21:45:22 gerd Rel $")
 
 (in-package "PCL-TEST")
 
@@ -70,6 +70,6 @@
 	  (defgeneric method-class.0.gf (x)
 	    (:method-class method-class.0))
 	  (defmethod method-class.0.gf ((x integer)) x)
-	  t)
+	  (method-class.0.gf 1))
       (values r (null c)))
-  t t)
+  1 t)
diff --git a/pcl/rt/defmethod.lisp b/pcl/rt/defmethod.lisp
index 34bc0a10515ea525f221a45380e660ac49a1dba7..857736b395f5ed343bf1fd43b578dd1ab2eeb0ac 100644
--- a/pcl/rt/defmethod.lisp
+++ b/pcl/rt/defmethod.lisp
@@ -28,7 +28,7 @@
 ;;; DAMAGE.
 
 #+cmu
-(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/rt/defmethod.lisp,v 1.3 2003/04/06 09:34:39 gerd Exp $")
+(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/rt/defmethod.lisp,v 1.4 2003/04/14 21:45:22 gerd Exp $")
 
 (in-package "PCL-TEST")
 
@@ -101,3 +101,18 @@
 	  t)
       (values r (null c)))
   t t)
+
+(deftest defmethod-metacircle.0
+    (multiple-value-bind (r c)
+	(ignore-errors
+	  (defclass dmm.0 () ())
+	  (defclass dmm.1 () ())
+	  (defclass dmm.0+1 (dmm.0 dmm.1) ())
+	  (defmethod dmm.0 ((x dmm.0) (y dmm.1)) 1)
+	  (defmethod dmm.0 ((x dmm.1) (y dmm.0)) 2)
+	  (dmm.0 (make-instance 'dmm.0+1) (make-instance 'dmm.0+1))
+	  (defmethod dmm.0 ((x dmm.0+1) (y dmm.0+1)) 3)
+	  (dmm.0 (make-instance 'dmm.0+1) (make-instance 'dmm.0+1)))
+      (values r (null c)))
+  3 t)
+
diff --git a/pcl/rt/pkg.lisp b/pcl/rt/pkg.lisp
index 516544a94d9958ddf4327486a9a9b727a9310855..5433020bbd785568544505c82af9edec5d0163ca 100644
--- a/pcl/rt/pkg.lisp
+++ b/pcl/rt/pkg.lisp
@@ -28,13 +28,10 @@
 ;;; DAMAGE.
 
 #+cmu
-(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/rt/pkg.lisp,v 1.2 2003/03/22 16:15:14 gerd Exp $")
+(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/rt/pkg.lisp,v 1.3 2003/04/14 21:45:22 gerd Rel $")
 
 (defpackage "PCL-TEST"
-  (:use "COMMON-LISP" #+cmu "PCL" #+sbcl "SB-PCL" "RT")
-  (:shadowing-import-from
-   #+cmu "PCL" #+sbcl "SB-PCL"
-   "FIND-CLASS" "CLASS-OF" "CLASS-NAME" "BUILT-IN-CLASS"))
+  (:use "COMMON-LISP" #+cmu "PCL" #+sbcl "SB-PCL" "RT"))
 
 #+sbcl
 (progn