Index: /branches/working-0711/ccl/compiler/nx0.lisp
===================================================================
--- /branches/working-0711/ccl/compiler/nx0.lisp	(revision 7790)
+++ /branches/working-0711/ccl/compiler/nx0.lisp	(revision 7791)
@@ -979,5 +979,4 @@
   (let* ((bits (nx-var-bits var))
          (mask (%ilogior (%ilsl $vbitsetq 1) (ash -1 $vbitspecial) (%ilsl $vbitclosed 1)))
-         ;(count (%i+ (%ilogand $vrefmask bits) (%ilsr 8 (%ilogand $vsetqmask bits))))
          (nrefs (%ilogand $vrefmask bits))
          (val (nx-untyped-form initform))
@@ -986,11 +985,11 @@
       (if
         (or 
-         ;(%izerop count)  ; unreferenced vars can still have side effects
          (nx-t val)
          (nx-null val)
-         (and (eql nrefs 1) ( acode-absolute-ptr-p val t))
+         (and (eql nrefs 1) (not (logbitp $vbitdynamicextent bits)) ( acode-absolute-ptr-p val t))
          (eq op (%nx1-operator fixnum))
          (eq op (%nx1-operator immediate)))
-        (nx-set-var-bits var (%ilogior (%ilsl $vbitpuntable 1) bits))))
+        (progn
+          (nx-set-var-bits var (%ilogior (%ilsl $vbitpuntable 1) bits)))))
     (when (and (%ilogbitp $vbitdynamicextent bits)
                (or (eq op (%nx1-operator closed-function))
@@ -1219,5 +1218,4 @@
            (boundtobits (nx-var-bits boundto)))
       (declare (fixnum varbits boundtobits))
-
       (unless (eq (%ilogior
                     (%ilsl $vbitsetq 1)
@@ -1228,5 +1226,5 @@
                       (%ilsl $vbitclosed 1))
                     boundtobits))
-        ; Can't happen -
+        ;; Can't happen -
         (unless (%izerop (%ilogand (%ilogior
                                      (%ilsl $vbitsetq 1) 
