diff --git a/assembly/rt/support.lisp b/assembly/rt/support.lisp
index a414c84d6b82457ee6c03fb90ddd626aefc1ec3e..1cc9de630b54baa2acd0da091ded880bc0a6219c 100644
--- a/assembly/rt/support.lisp
+++ b/assembly/rt/support.lisp
@@ -7,7 +7,7 @@
 ;;; Lisp, please contact Scott Fahlman (Scott.Fahlman@CS.CMU.EDU)
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/rt/support.lisp,v 1.1 1991/02/18 15:43:35 chiles Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/rt/support.lisp,v 1.2 1991/04/22 10:13:28 chiles Exp $
 ;;;
 ;;; This file contains the machine specific support routines needed by
 ;;; the file assembler.
@@ -35,7 +35,11 @@
 	    (inst bala (make-fixup ',name :assembly-routine))
 	    (emit-return-pc lra-label)
 	    (note-this-location ,vop :unknown-return)
-	    (move csp-tn ocfp-tn)
+	    ;; Don't use MOVE.  Use a known 32-bit long instruction, so the
+	    ;; returner can know how many bytes we used here in the
+	    ;; multiple-value return case.  The returner wants to add a known
+	    ;; quantity to LRA indicating how many values it returned.
+	    (inst cal csp-tn ocfp-tn 0)
 	    (inst compute-code-from-lra code-tn code-tn lra-label)
 	    (when cur-nfp
 	      (load-stack-tn cur-nfp ,nfp-save))))
@@ -57,5 +61,5 @@
     (:raw
      `((inst b lip-tn)))
     (:full-call
-     `((lisp-return lra-tn lip-tn :offset 2)))
+     `((lisp-return lra-tn lip-tn :offset 1)))
     (:none)))