diff --git a/compiler/mips/call.lisp b/compiler/mips/call.lisp
index 2fb5ceb910d0c8b43c587bddc9b0be9a9caeb03c..c66241f32bd4a4fa4dfeac77968726577aceb63f 100644
--- a/compiler/mips/call.lisp
+++ b/compiler/mips/call.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman (FAHLMAN@CMUC). 
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/call.lisp,v 1.9 1990/05/11 17:49:20 wlott Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/call.lisp,v 1.10 1990/05/13 19:16:41 wlott Exp $
 ;;;
 ;;;    This file contains the VM definition of function call for the MIPS.
 ;;;
@@ -797,7 +797,7 @@ default-value-5
 (expand
  `(define-vop (return)
     (:args
-     (old-fp :scs (any-reg) :load-if (not (sc-is old-fp control-stack)))
+     (old-fp :scs (any-reg))
      (return-pc :scs (descriptor-reg) :to (:eval 1))
      (values :more t))
     (:ignore values)
@@ -813,29 +813,27 @@ default-value-5
     (:vop-var vop)
     (:generator 6
       (cond ((= nvals 1)
+	     ;; Clear the stacks.
 	     (let ((cur-nfp (current-nfp-tn vop)))
 	       (when cur-nfp
 		 (move nsp-tn cur-nfp)))
-	     (sc-case old-fp
-	       (any-reg
-		(move fp-tn old-fp))
-	       (control-stack
-		(load-stack-tn fp-tn old-fp)))
 	     (move csp-tn fp-tn)
+	     ;; Reset the frame pointer.
+	     (move fp-tn old-fp)
+	     ;; Out of here.
 	     (inst addu lip return-pc (- (* 3 word-bytes) other-pointer-type))
 	     (inst j lip)
 	     (move code-tn return-pc))
 	    (t
 	     (inst li nargs (fixnum nvals))
+	     ;; Clear the number stack.
 	     (let ((cur-nfp (current-nfp-tn vop)))
 	       (when cur-nfp
 		 (move nsp-tn cur-nfp)))
 	     (move val-ptr fp-tn)
-	     (sc-case old-fp
-	       (any-reg
-		(move fp-tn old-fp))
-	       (control-stack
-		(load-stack-tn fp-tn old-fp)))
+	     ;; Reset the frame pointer.
+	     (move fp-tn old-fp)
+	     
 	     (inst addu csp-tn val-ptr (* nvals word-bytes))
 	     
 	     ,@(let ((index 0))