Index: /trunk/source/compiler/nx1.lisp
===================================================================
--- /trunk/source/compiler/nx1.lisp	(revision 14982)
+++ /trunk/source/compiler/nx1.lisp	(revision 14983)
@@ -1429,9 +1429,13 @@
       (push tag *nx-tags*))
     (let* ((body nil)
-           (*nx-loop-nesting-level* (1+ *nx-loop-nesting-level*)))
+           (level *nx-loop-nesting-level*)
+           (*nx-loop-nesting-level* level))
+           
       (dolist (form args (setq body (nreverse body)))
         (push 
          (if (atom form)
            (let ((info (nx-tag-info form)))
+             (when (eql level *nx-loop-nesting-level*)
+               (setq *nx-loop-nesting-level* (1+ level)))
              (%rplaca (%cdr (%cdr (%cdr (%cdr info)))) t)
              (cons (%nx1-operator tag-label) info))
Index: /trunk/source/compiler/nx2.lisp
===================================================================
--- /trunk/source/compiler/nx2.lisp	(revision 14982)
+++ /trunk/source/compiler/nx2.lisp	(revision 14983)
@@ -22,5 +22,5 @@
 (defun nx2-bigger-cdr-than (x y)
   (declare (cons x y))
-  (> (the fixnum (cdr x)) (the fixnum (cdr y))))
+  (> (cdr x) (cdr y)))
 
 ;;; Return an unordered list of "varsets": each var in a varset can be
Index: /trunk/source/compiler/nxenv.lisp
===================================================================
--- /trunk/source/compiler/nxenv.lisp	(revision 14982)
+++ /trunk/source/compiler/nxenv.lisp	(revision 14983)
@@ -566,5 +566,5 @@
                       by
                       (expt 4 *nx-loop-nesting-level*)))
-         (new (%i+ nsetqs scaled-by)))
+         (new (+ (var-refs var) scaled-by)))
     (nx-set-var-root-nsetqs var (1+ nsetqs))
     ;; If a variable is setq'ed from a catch nested within the construct that
