diff --git a/compiler/globaldb.lisp b/compiler/globaldb.lisp
index 33500c22260756bd67b10bbe90773fbc24ca7944..986a0837db7f84638e98028a021ed967c440c6ac 100644
--- a/compiler/globaldb.lisp
+++ b/compiler/globaldb.lisp
@@ -463,7 +463,21 @@
 ;;;
 (defvar *cached-info-environment*)
 
-(eval-when (compile eval)
+
+;;; INFO-CACHE-HASH  --  Internal
+;;;
+;;;    Hash function used for INFO cache.
+;;;
+(defmacro info-cache-hash (name type)
+  `(the fixnum
+	(logand
+	 (the fixnum
+	      (logxor (the fixnum (cache-hash-eq ,name))
+		      (the fixnum (ash (the fixnum ,type) 7))))
+	 #x3FF)))
+
+
+(eval-when (compile #-new-compiler load eval)
 
 ;;; INFO-CACHE-INIT  --  Internal
 ;;;
@@ -492,19 +506,6 @@
 (pushnew 'info-cache-gc-hook *after-gc-hooks*)
 
 
-;;; INFO-CACHE-HASH  --  Internal
-;;;
-;;;    Hash function used for INFO cache.
-;;;
-(defmacro info-cache-hash (name type)
-  `(the fixnum
-	(logand
-	 (the fixnum
-	      (logxor (the fixnum (cache-hash-eq ,name))
-		      (the fixnum (ash (the fixnum ,type) 7))))
-	 #x3FF)))
-
-
 ;;; CLEAR-INVALID-INFO-CACHE  --  Internal
 ;;;
 ;;;    If the info cache is invalid, then clear it.