diff --git a/compiler/ir2tran.lisp b/compiler/ir2tran.lisp
index 4f154b7111bde01a3a7a7c9981f59bc491a0420c..1671f061b542b88d2041b9cb5c42872ba7c9f2ab 100644
--- a/compiler/ir2tran.lisp
+++ b/compiler/ir2tran.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir2tran.lisp,v 1.41 1992/03/11 21:23:41 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir2tran.lisp,v 1.42 1992/05/03 21:45:07 wlott Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -21,7 +21,7 @@
 (export '(%caller-frame-and-pc))
 (in-package "C")
 
-(export '(safe-fdefn-function))
+(export '(safe-fdefn-function return-single))
 
 
 
@@ -1204,10 +1204,12 @@
 		  (emit-move node block val loc))
 	      cont-locs
 	      locs)
-	(vop* return node block
-	      (old-fp return-pc (reference-tn-list locs nil))
-	      (nil)
-	      nvals)))
+	(if (= nvals 1)
+	    (vop return-single node block old-fp return-pc (car locs))
+	    (vop* return node block
+		  (old-fp return-pc (reference-tn-list locs nil))
+		  (nil)
+		  nvals))))
      (t
       (assert (eq cont-kind :unknown))
       (vop* return-multiple node block