"GET-VECTOR-SUBTYPE"
                "GET-TOPLEVELISH-FILE-INFO"
                "HALT"
-               "IF-EQ" "INLINE-SYNTACTIC-CLOSURE-LAMBDA"
+               "IF-EQ"
+               "IMMEDIATE-TN-P"
+               "INLINE-SYNTACTIC-CLOSURE-LAMBDA"
                "INSERT-STEP-CONDITIONS"
                "IR2-COMPONENT-CONSTANTS" "IR2-CONVERT"
                "IR2-PHYSENV-NUMBER-STACK-P"
 
   (aver (eq (tn-kind tn) :constant))
   (constant-value (tn-leaf tn)))
 
+(defun immediate-tn-p (tn)
+  (declare (type tn tn))
+  (let ((leaf (tn-leaf tn)))
+    ;; Leaves with KIND :CONSTANT can have NIL as the leaf if they
+    ;; represent load time values.
+    (and leaf
+         (eq (tn-kind tn) :constant)
+         (eq (immediate-constant-sc (constant-value leaf))
+             (sc-number-or-lose 'sb!vm::immediate)))))
+
 ;;; Force TN to be allocated in a SC that doesn't need to be saved: an
 ;;; unbounded non-save-p SC. We don't actually make it a real "restricted" TN,
 ;;; but since we change the SC to an unbounded one, we should always succeed in
 
         (let ((scn (sc-number-or-lose representation)))
           (labels ((make-tn ()
                      (make-representation-tn ptype scn))
-                   (immediate-tn-p (tn)
-                     (and (eq (sb!c::tn-kind tn) :constant)
-                          (eq (sb!c::immediate-constant-sc (tn-value tn))
-                              (sc-number-or-lose 'immediate))))
                    (frob-tn (tn)
                      (if (immediate-tn-p tn)
                          tn
 
         (let ((scn (sc-number-or-lose representation)))
           (labels ((make-tn ()
                      (make-representation-tn ptype scn))
-                   (immediate-tn-p (tn)
-                     (and (eq (sb!c::tn-kind tn) :constant)
-                          (eq (sb!c::immediate-constant-sc (tn-value tn))
-                              (sc-number-or-lose 'immediate))))
                    (frob-tn (tn)
                      (if (immediate-tn-p tn)
                          tn
 
                        t)
               t)))
 
+(with-test (:name :regression-1.0.24.37)
+  (compile nil '(lambda (&key (test (constantly t)))
+                 (when (funcall test)
+                   :quux))))
+
 ;;; Attempt to test a decent cross section of conditions
 ;;; and values types to move conditionally.
 (macrolet
 
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.24.39"
+"1.0.24.40"