diff --git a/compiler/sset.lisp b/compiler/sset.lisp
index d59eb71fda0d5c07cd23dd324e80954ab025140d..a703973bcbca4855bdbdcebc48957c0c633f6d68 100644
--- a/compiler/sset.lisp
+++ b/compiler/sset.lisp
@@ -126,11 +126,11 @@
 	((null el1) t)
       (let ((num1 (sset-element-number (car el1))))
 	(loop
-	 (when (null el2) (return-from sset-subsetp nil))
-	 (let ((num2 (sset-element-number (pop el2))))
-	   (when (>= num2 num1)
-	     (when (> num2 num1) (return-from sset-subsetp nil))
-	     (return))))))))
+	  (when (null el2) (return-from sset-subsetp nil))
+	  (let ((num2 (sset-element-number (pop el2))))
+	    (when (>= num2 num1)
+	      (when (> num2 num1) (return-from sset-subsetp nil))
+	      (return))))))))
 
 
 ;;; SSet-Equal  --  Interface
@@ -275,6 +275,7 @@
 			  (when (null el3)
 			    (setf (cdr prev-el1) (copy-list el2))
 			    (return-from sset-union-of-difference t))
+			  (setq num3 (sset-element-number (car el3)))
 			  (when (<= num2 num3)
 			    (unless (= num2 num3)
 			      (let ((new (cons e el1)))