Index: /trunk/source/compiler/ARM/arm2.lisp
===================================================================
--- /trunk/source/compiler/ARM/arm2.lisp	(revision 14416)
+++ /trunk/source/compiler/ARM/arm2.lisp	(revision 14417)
@@ -7439,5 +7439,5 @@
                          j
                          (if *arm2-reckless*
-                           *nx-nil*
+                           (make-nx-nil)
                            (nx-lookup-target-uvector-subtag keyword ))
                          keyword        ;(make-acode (%nx1-operator immediate) )
@@ -7494,5 +7494,5 @@
                          k
                          (if *arm2-reckless*
-                           *nx-nil*
+                           (make-nx-nil)
                            (nx-lookup-target-uvector-subtag keyword ))
                          keyword ;(make-acode (%nx1-operator immediate) )
Index: /trunk/source/compiler/PPC/ppc2.lisp
===================================================================
--- /trunk/source/compiler/PPC/ppc2.lisp	(revision 14416)
+++ /trunk/source/compiler/PPC/ppc2.lisp	(revision 14417)
@@ -7634,5 +7634,5 @@
 (defppc2 ppc2-fixnum-overflow fixnum-overflow (seg vreg xfer form)
   (destructuring-bind (op n0 n1) (acode-unwrapped-form form)
-    (ppc2-use-operator op seg vreg xfer n0 n1 *nx-t*)))
+    (ppc2-use-operator op seg vreg xfer n0 n1 (make-nx-t))))
 
 
@@ -7678,5 +7678,5 @@
                          j
                          (if *ppc2-reckless*
-                           *nx-nil*
+                           (make-nx-nil)
                            (nx-lookup-target-uvector-subtag keyword ))
                          keyword        ;(make-acode (%nx1-operator immediate) )
@@ -7733,5 +7733,5 @@
                          k
                          (if *ppc2-reckless*
-                           *nx-nil*
+                           (make-nx-nil)
                            (nx-lookup-target-uvector-subtag keyword ))
                          keyword ;(make-acode (%nx1-operator immediate) )
Index: /trunk/source/compiler/X86/x862.lisp
===================================================================
--- /trunk/source/compiler/X86/x862.lisp	(revision 14416)
+++ /trunk/source/compiler/X86/x862.lisp	(revision 14417)
@@ -8699,5 +8699,5 @@
 (defx862 x862-fixnum-overflow fixnum-overflow (seg vreg xfer form)
   (destructuring-bind (op n0 n1) (acode-unwrapped-form form)
-    (x862-use-operator op seg vreg xfer n0 n1 *nx-t*)))
+    (x862-use-operator op seg vreg xfer n0 n1 (make-nx-t))))
 
 (defx862 x862-%aref2 simple-typed-aref2 (seg vreg xfer typename arr i j &optional dim0 dim1)
Index: /trunk/source/compiler/nx-basic.lisp
===================================================================
--- /trunk/source/compiler/nx-basic.lisp	(revision 14416)
+++ /trunk/source/compiler/nx-basic.lisp	(revision 14417)
@@ -838,6 +838,6 @@
 
 (defun decomp-form (acode)
-  (cond ((eq acode *nx-t*) t)
-        ((eq acode *nx-nil*) nil)
+  (cond ((nx-null acode) t)
+        ((nx-t acode) nil)
         (t (let* ((op (car acode))
                   (num (length *next-nx-operators*))
@@ -888,5 +888,5 @@
           (opts (when opt (cons '&optional (apply #'mapcar
                                                   (lambda (var init supp)
-                                                    (if (and (not supp) (eq init *nx-nil*))
+                                                    (if (and (not supp) (nx-null init))
                                                       (decomp-arg var)
                                                       (list* (decomp-arg var)
@@ -904,5 +904,5 @@
                                                               sym
                                                               (list key sym))))
-                                                  (if (and (not supp) (eq init *nx-nil*) (eq arg sym))
+                                                  (if (and (not supp) (nx-null init) (eq arg sym))
                                                     sym
                                                     (list* arg
@@ -914,5 +914,5 @@
                    (cons '&aux (apply #'mapcar
                                       (lambda (var init)
-                                        (if (eq init *nx-nil*)
+                                        (if (nx-null init)
                                           (decomp-arg var)
                                           (list (decomp-arg var) (decomp-form init))))
Index: /trunk/source/compiler/nx0.lisp
===================================================================
--- /trunk/source/compiler/nx0.lisp	(revision 14416)
+++ /trunk/source/compiler/nx0.lisp	(revision 14417)
@@ -66,18 +66,19 @@
 
 (defvar *nx-lambdalist* (make-symbol "lambdalist"))
-(defvar *nx-nil* (make-acode (%nx1-operator nil)))
-(defvar *nx-t* (make-acode (%nx1-operator t)))
+
+(defmacro make-nx-nil () `(make-acode ,(%nx1-operator nil)))
+(defmacro make-nx-t () `(make-acode `(%nx1-operator t)))
 
 (defun %nx-null (x)
-  (or (eq x *nx-nil*)
-      (if (acode-p x)
-        (eql (acode-operator x)
-             (%nx1-operator nil)))))
+  (let* ((x (acode-unwrapped-form x)))
+    (if (acode-p x)
+      (eql (acode-operator x)
+           (%nx1-operator nil)))))
 
 (defun %nx-t (x)
-  (or (eq x *nx-t*)
-      (if (acode-p x)
-        (eql (acode-operator x)
-             (%nx1-operator t)))))
+  (let* ((x (acode-unwrapped-form x)))
+        (if (acode-p x)
+          (eql (acode-operator x)
+               (%nx1-operator t)))))
 
 (defparameter *nx-current-compiler-policy* (%default-compiler-policy))
@@ -449,5 +450,5 @@
           (if (nx-null form)
             'null
-            (if (eq form *nx-t*)
+            (if (nx-t form)
               'boolean
               (nx-target-type 
@@ -1587,5 +1588,5 @@
         (until (eq keytail auxtail)
           (unless (eq (setq sym (pop keytail)) '&allow-other-keys)      
-            (setq kinit *nx-nil* ksupp nil)
+            (setq kinit (make-nx-nil) ksupp nil)
             (if (atom sym)
               (setq kvar sym kkey (make-keyword sym))
@@ -1683,5 +1684,5 @@
         (until (eq keytail auxtail)
           (unless (eq (setq sym (pop keytail)) '&allow-other-keys)      
-            (setq kinit *nx-nil* ksupp nil)
+            (setq kinit (make-nx-nil) ksupp nil)
             (if (atom sym)
               (setq kvar sym kkey (make-keyword sym))
@@ -1781,18 +1782,9 @@
 
 (defun nx1-immediate (form)
-  #+notyet
   (cond ((eq form t) (make-acode (%nx1-operator t)))
         ((null form) (make-acode (%nx1-operator nil)))
         ((nx1-target-fixnump form)
          (make-acode (%nx1-operator fixnum) form))
-        (t (make-acode (%nx1-operator immediate) form)))
-  #-notyet
-  (if (or (eq form t) (null form))
-    (nx1-sysnode form)
-    (make-acode
-     (if (nx1-target-fixnump form) 
-       (%nx1-operator fixnum)
-       (%nx1-operator immediate))   ; Screw: chars
-     form)))
+        (t (make-acode (%nx1-operator immediate) form))))
 
 (defun nx2-constant-form-value (form)
Index: /trunk/source/compiler/nx1.lisp
===================================================================
--- /trunk/source/compiler/nx1.lisp	(revision 14416)
+++ /trunk/source/compiler/nx1.lisp	(revision 14417)
@@ -1422,5 +1422,5 @@
            (%nx1-operator let*)
            (list catchvar indexvar)
-           (list (make-acode (%nx1-operator cons) *nx-nil* *nx-nil*) *nx-nil*)
+           (list (make-acode (%nx1-operator cons) (make-nx-nil) (make-nx-nil)) (make-nx-nil))
            (make-acode
             (%nx1-operator local-tagbody)
@@ -1441,5 +1441,5 @@
                  body)))
               (make-acode (%nx1-operator local-go) looplabel)
-              *nx-nil*)))
+              (make-nx-nil))))
            0))))))
 
@@ -2012,8 +2012,8 @@
                   (progn
                     (push (%car optvars) vars) (push (%car arglist) vals)
-                    (when (%car spvars) (push (%car spvars) vars) (push *nx-t* vals)))
+                    (when (%car spvars) (push (%car spvars) vars) (push (make-nx-t) vals)))
                   (progn
                     (push (%car optvars) vars*) (push (%car inits) vals*)
-                    (when (%car spvars) (push (%car spvars) vars*) (push *nx-nil* vals*))))
+                    (when (%car spvars) (push (%car spvars) vars*) (push (make-nx-nil) vals*))))
                 (setq optvars (%cdr optvars) spvars (%cdr spvars) inits (%cdr inits)
                       arglist (%cdr arglist))))
@@ -2022,6 +2022,6 @@
                 (nx-error "Extra args ~s for (LAMBDA ~s ...)" args lambda-list))
               (when rest
-                (push rest vars*) (push *nx-nil* vals*)
-                (nx1-punt-bindings (cons rest nil) (cons *nx-nil* nil))
+                (push rest vars*) (push (make-nx-nil) vals*)
+                (nx1-punt-bindings (cons rest nil) (cons (make-nx-nil) nil))
                 (setq rest nil)))
             (when keys
@@ -2050,5 +2050,5 @@
                           (when (%car spvars)
                             (push (%car spvars) vars*)
-                            (push (if (%svref keyargs i) *nx-t* *nx-nil*) vals*))
+                            (push (if (%svref keyargs i) (make-nx-t) (make-nx-nil)) vals*))
                           (setq keyvars (%cdr keyvars) inits (%cdr inits) spvars (%cdr spvars)))
                         (setq keys hit))
Index: /trunk/source/compiler/nxenv.lisp
===================================================================
--- /trunk/source/compiler/nxenv.lisp	(revision 14416)
+++ /trunk/source/compiler/nxenv.lisp	(revision 14417)
@@ -506,5 +506,4 @@
           nx-adjust-setq-count
           nx-init-var
-          nx1-sysnode
           ))
 
@@ -558,9 +557,5 @@
 
 
-(defun nx1-sysnode (form)
-  (if form
-    (if (eq form t)
-      *nx-t*)
-    *nx-nil*))
+
 )
 
