diff --git a/ansi-tests/random-int-form.lsp b/ansi-tests/random-int-form.lsp
index bececfffa5faf3464c9f3fbc02ecc4d858f88de3..138f9331428273f8f8f3a7a345e9e56f802acdd5 100644
--- a/ansi-tests/random-int-form.lsp
+++ b/ansi-tests/random-int-form.lsp
@@ -803,7 +803,8 @@
 		 (not (rest binding-list))
 		 (not (rest body)))
 	(let ((binding (first binding-list)))
-	  (unless (consp (second binding))
+	  (unless (or (consp (second binding))
+		      (has-assignment-to-var (first binding) body))
 	    (funcall try-fn `(let ()
 			       ,@(subst (second binding)
 					(first binding) body))))))
@@ -812,6 +813,13 @@
 		 (funcall try-fn
 			  `(,@(butlast form) ,form2)))))))
 
+(defun has-assignment-to-var (var form)
+  (when (consp form)
+    (or (and (member (car form) '(setq setf))
+	     (eq (cadr form) var))
+	(loop for subform in form
+	      thereis (has-assignment-to-var var subform)))))       
+
 (defun prune-flet (form try-fn)
   "Attempt to simplify a FLET form."
   (declare (function try-fn))