diff --git a/code/fdefinition.lisp b/code/fdefinition.lisp
index f7c0634afe02f40202063bf8c24d1cf9ec8e624c..24ba1b5afdcc2e49f20d7252ee66f5fd747ad001 100644
--- a/code/fdefinition.lisp
+++ b/code/fdefinition.lisp
@@ -58,11 +58,13 @@
     (functionp (%primitive fast-symbol-function name))
     (functionp (gethash (cadr name) *setf-functions*))))
 
+#+new-compiler
+(defvar *the-undefined-function*)
+
 #+new-compiler
 (defun fmakunbound (name)
   "Make Name have no global function definition."
   (with-function-name name
-    (%primitive set-symbol-function name
-		(%primitive make-immediate-type 0 %trap-type))
+    (%primitive set-symbol-function name *the-undefined-function*)
     (remhash (cadr name) *setf-functions*))
   t)