diff --git a/compiler/main.lisp b/compiler/main.lisp
index fb04e72da9d479f79e301da4128bb061513f42e7..cdd910862d572909fd5e16442f5a5f7b65f52dcd 100644
--- a/compiler/main.lisp
+++ b/compiler/main.lisp
@@ -747,14 +747,15 @@
 (defun preprocessor-macroexpand (form)
   (handler-case #+new-compiler (macroexpand-1 form *lexical-environment*)
                 #-new-compiler
-                (if (consp form)
-		    (let* ((name (car form))
-			   (exp (or (cddr (assoc name *fenv*))
-				    (info function macro-function name))))
-		      (if exp
-			  (funcall exp form *fenv*)
-			  form))
-		    form)
+                (let ((fenv (lexenv-functions *lexical-environment*)))
+		  (if (consp form)
+		      (let* ((name (car form))
+			     (exp (or (cddr (assoc name fenv))
+				      (info function macro-function name))))
+			(if exp
+			    (funcall exp form fenv)
+			    form))
+		      form))
     (error (condition)
        (compiler-error "(during macroexpansion)~%~A" condition))))