diff --git a/bin/build-utils.sh b/bin/build-utils.sh
index 7f5862ed384fb139b192a50ba0d1035d9053c38f..e59fd19236a748594a1de75655b3b9e9253ff4b0 100755
--- a/bin/build-utils.sh
+++ b/bin/build-utils.sh
@@ -15,18 +15,6 @@ fi
 TARGET="`echo $1 | sed 's:/*$::'`"
 shift
 
-# Compile up the asdf and defsystem modules
-$TARGET/lisp/lisp -noinit -nositeinit -batch "$@" << EOF || exit 3
-(in-package :cl-user)
-(setf (ext:search-list "target:")
-      '("$TARGET/" "src/"))
-(setf (ext:search-list "modules:")
-      '("target:contrib/"))
-
-(compile-file "modules:asdf/asdf")
-(compile-file "modules:defsystem/defsystem")
-EOF
-
 $TARGET/lisp/lisp \
 	-noinit -nositeinit -batch "$@" <<EOF || exit 3
 (in-package :cl-user)
diff --git a/bin/build.sh b/bin/build.sh
index f451ac110d11baae0bfe8ac61850d160fedb408f..99d0a43aa9347d1aa9bed9a8f1f80ddc52cab82a 100755
--- a/bin/build.sh
+++ b/bin/build.sh
@@ -251,6 +251,19 @@ if [ "$SKIPUTILS" = "no" ];
 then
     OLDLISP="${BASE}-4/lisp/lisp $OLDLISPFLAGS $FPU_MODE"
     time $TOOLDIR/build-utils.sh $TARGET $FPU_MODE
+else
+# But asdf and friends are part of the base install, so we need to build them.
+    $TARGET/lisp/lisp -noinit -nositeinit -batch "$@" << EOF || exit 3
+    (in-package :cl-user)
+    (setf (ext:search-list "target:")
+	  '("$TARGET/" "src/"))
+    (setf (ext:search-list "modules:")
+	  '("target:contrib/"))
+
+    (compile-file "modules:asdf/asdf")
+    (compile-file "modules:defsystem/defsystem")
+EOF
+
 fi
 
 build_finished=`date`