diff --git a/compiler/pack.lisp b/compiler/pack.lisp
index e50e6e8f36cb7721be8ed8064f0cb49ede6b2858..0d13450e86f5783b5c2d2ffda0a4876d7b81c685 100644
--- a/compiler/pack.lisp
+++ b/compiler/pack.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/pack.lisp,v 1.42 1991/09/28 12:38:00 ram Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/pack.lisp,v 1.43 1991/11/05 17:36:08 ram Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -516,10 +516,11 @@
 ;;; VOP.  We must find the VOP in the same IR1 block.
 ;;;
 (defun reverse-find-vop (name vop)
-  (do ((block (vop-block vop) (ir2-block-prev block)))
-      (nil)
+  (do* ((block (vop-block vop) (ir2-block-prev block))
+	(last vop (ir2-block-last-vop block)))
+       (nil)
     (assert (eq (ir2-block-block block) (ir2-block-block (vop-block vop))))
-    (do ((current vop (vop-prev current)))
+    (do ((current last (vop-prev current)))
 	((null current))
       (when (eq (vop-info-name (vop-info current)) name)
 	(return-from reverse-find-vop current)))))