diff --git a/compiler/ir1opt.lisp b/compiler/ir1opt.lisp
index f986e80961419636dc1a46e9736a1bb212cd6a34..df3a06de27d6e3603d7742d06ba8ada6400118e6 100644
--- a/compiler/ir1opt.lisp
+++ b/compiler/ir1opt.lisp
@@ -159,6 +159,8 @@
 	  (when prev
 	    (let* ((block (continuation-block prev))
 		   (component (block-component block)))
+	      (when (typep dest 'cif)
+		(setf (block-test-modified block) t))
 	      (setf (block-reoptimize block) t)
 	      (setf (component-reoptimize component) t))))))
     (do-uses (node cont)
@@ -689,13 +691,13 @@
 		    (continuation-dest (node-cont node)))
 	   (constant-fold-call node)
 	   (return-from ir1-optimize-combination)))
-       
+
        (let ((fun (function-info-derive-type kind)))
 	 (when fun
 	   (let ((res (funcall fun node)))
 	     (when res
 	       (derive-node-type node res)))))
-       
+
        (let ((fun (function-info-optimizer kind)))
 	 (unless (and fun (funcall fun node))
 	   (dolist (x (function-info-transforms kind))