diff --git a/compiler/ir1util.lisp b/compiler/ir1util.lisp
index b4f3cbbae45aa9d9a380cfe1e88c68b5207081dc..deaab6360a69416cb549ae153f1c9e793b94d914 100644
--- a/compiler/ir1util.lisp
+++ b/compiler/ir1util.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1util.lisp,v 1.84 2002/08/21 17:55:19 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1util.lisp,v 1.85 2002/08/25 19:03:57 toy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -526,7 +526,12 @@
 		      `(when (eq (,slot last) old)
 			 (setf (,slot last) new))))
 	   (frob if-consequent)
-	   (frob if-alternative))))
+	   (frob if-alternative)
+	   (when (eq (if-consequent last)
+		     (if-alternative last))
+	     ;; Allow IR1-OPTIMIZE to perform (IF test exp exp) =>
+	     ;; (PROGN test exp) optimization, if it can.
+	     (setf (component-reoptimize comp) t)))))
       (t
        (unless (member new (block-succ block) :test #'eq)
 	 (link-blocks block new)))))