diff --git a/pcl/boot.lisp b/pcl/boot.lisp
index 1f1e872fb9c4715270318338cacea36d4429d440..65927d8e9fa96f10b6740b28200885548f66fe71 100644
--- a/pcl/boot.lisp
+++ b/pcl/boot.lisp
@@ -25,7 +25,7 @@
 ;;; *************************************************************************
 
 (file-comment
- "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/boot.lisp,v 1.62 2003/05/28 10:41:47 gerd Exp $")
+ "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/boot.lisp,v 1.63 2003/05/30 09:14:34 gerd Exp $")
 
 (in-package :pcl)
 
@@ -1139,7 +1139,6 @@ work during bootstrapping.
        (val method-function key)
   (setf (getf (method-function-plist method-function) key) val))
 
-
 (defun method-function-pv-table (method-function)
   (method-function-get method-function :pv-table))
 
@@ -1149,6 +1148,16 @@ work during bootstrapping.
 (defun method-function-needs-next-methods-p (method-function)
   (method-function-get method-function :needs-next-methods-p t))
 
+;;;
+;;; Return a method function name of METHOD.  If FAST-FUNCTION
+;;; is true, return the fast method function name, otherwise
+;;; return the slow method function name.
+;;;
+(defun method-function-name (method &optional (fast-function t))
+  (let ((fn (slot-value method
+			(if fast-function 'fast-function 'function))))
+    (assert (functionp fn))
+    (method-function-get fn :name)))
 
 
 (defun load-defmethod (class name quals specls ll initargs
diff --git a/pcl/combin.lisp b/pcl/combin.lisp
index 5a12fbd3be84223be2fb2b864c7f9b9946db3921..e6ae26529d7a8175930c2167cfe41e477225f1ba 100644
--- a/pcl/combin.lisp
+++ b/pcl/combin.lisp
@@ -25,7 +25,7 @@
 ;;; *************************************************************************
 
 (file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/combin.lisp,v 1.17 2003/05/28 10:41:47 gerd Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/combin.lisp,v 1.18 2003/05/30 09:14:34 gerd Exp $")
 
 (in-package "PCL")
 
@@ -466,17 +466,6 @@
 		,@check-applicable-keywords
 		,body))))))
 
-;;;
-;;; Return a method function name of METHOD.  If FAST-FUNCTION
-;;; is true, return the fast method function name, otherwise
-;;; return the slow method function name.
-;;;
-(defun method-function-name (method &optional (fast-function t))
-  (let ((name (nth-value 2 (parse-method-or-spec method))))
-    (if fast-function
-	(cons 'fast-method (cdr name))
-	name)))
-
 ;;;
 ;;; Return a form for calling METHOD's fast function.  METATYPES is a
 ;;; list of metatypes, whose length is used to figure out the names of
@@ -500,11 +489,11 @@
 ;;; variable containing a list of FAST-METHOD-CALL structures
 ;;; corresponding to the method function calls.
 ;;;
-(defun make-direct-calls (methods metatypes apply? list-var)
+(defun make-direct-calls (methods metatypes rest? list-var)
   (collect ((calls))
     (dolist (method methods)
       (calls `(let ((.call. (pop .list.)))
-		,(make-direct-call method metatypes apply? '.call.))))
+		,(make-direct-call method metatypes rest? '.call.))))
     `(let ((.list. ,list-var))
        (declare (ignorable .list.))
        ,@(calls))))