diff --git a/code/byte-interp.lisp b/code/byte-interp.lisp
index a9ddc1e2aada8c424db40113ed4e98e551dabb4d..85b981a4a6d99492bfd1b4489e47e3e8cf0e0fc6 100644
--- a/code/byte-interp.lisp
+++ b/code/byte-interp.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/byte-interp.lisp,v 1.13 1993/05/12 16:15:46 ram Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/byte-interp.lisp,v 1.14 1993/05/12 21:03:03 ram Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -1057,9 +1057,9 @@
 		     (let ((args ())
 			   (end (+ start num-args)))
 		       (declare (type stack-pointer end))
-		       (do ((i start (1+ i)))
-			   ((= i end))
-			 (declare (type stack-pointer i))
+		       (do ((i (1- end) (1- i)))
+			   ((< i start))
+			 (declare (fixnum i))
 			 (push (eval-stack-ref i) args))
 		       (setf (current-stack-pointer) restore-sp)
 		       (apply function args)))))