diff --git a/tools/asdf-tools b/tools/asdf-tools
index c61106820222adcc6dd6d78b5727b553fa44ef12..56175c5a2433c02cff23487e0658164bf540cedb 100755
--- a/tools/asdf-tools
+++ b/tools/asdf-tools
@@ -13,7 +13,7 @@
 
 ;;; ASDF3 is loaded, now use it!
 (eval-when (:compile-toplevel :load-toplevel :execute)
-  (asdf:load-system :asdf-tools))
+  (#-quicklisp asdf:load-system #+quicklisp ql:quickload :asdf-tools))
 
 ;;; Actually run the stuff!
 (uiop:restore-image :entry-point 'asdf-tools::entry-point)
diff --git a/tools/load-asdf.lisp b/tools/load-asdf.lisp
index 3bfe5f2ec1010ae8eaf25f64f72e40d35e7331d3..9125d95e707e37d211a008fdd73204da91dcc64d 100644
--- a/tools/load-asdf.lisp
+++ b/tools/load-asdf.lisp
@@ -34,7 +34,7 @@
              (merge-pathnames (make-pathname :defaults parent
                                              :directory (cons :relative directory)
                                              :name name :type type :version version)
-                              parent))
+                              (make-pathname :name nil :type nil :version nil :defaults parent)))
            (here-directory ()
              (subpath (or *compile-file-truename* *load-truename*
                           (truename *default-pathname-defaults*))))
@@ -55,26 +55,26 @@
              (unless (member :asdf2 *features*)
                (or (and (try-load (asdf-lisp)) (member :asdf2 *features*))
                    (error "This Lisp implementation fails to provide ASDF 2 or later. ~
-                           Please install it in ~A" (asdf-lisp)))
-               ;; Configure ASDF
-               (configure-asdf)
-               (let ((provided-version (asdf-version)))
-                 ;; Upgrade ASDF to what we configured it to be.
-                 (asdf-call 'load-system :asdf)
-                 ;; If the implementation-provided version was too old,
-                 ;; we need to re-configure, because old configuration may have been moved away.
-                 (unless (asdf-call 'version-satisfies provided-version "2.27")
-                   (configure-asdf)))
-               (unless (asdf-call 'version-satisfies (asdf-version) (required-asdf-version))
-                 (error "This program needs ASDF ~A but could only find ASDF ~A"
-                        (required-asdf-version) (asdf-version)))
-               ;; Here, we specifically want the ASDF in the current git checkout over
-               ;; whatever quicklisp is providing, so we load quicklisp last.
-               ;; If the checkout weren't providing ASDF and we wanted to rely on Quicklisp
-               ;; to provide a copy of ASDF that the implementation might be lacking,
-               ;; we'd move this form right below the (funcall 'require "asdf") above.
-               ;; See also notes in try-load-quicklisp.
-               (try-load-quicklisp)))
+                           Please install it in ~A" (asdf-lisp))))
+             ;; Configure ASDF
+             (configure-asdf)
+             (let ((provided-version (asdf-version)))
+               ;; Upgrade ASDF to what we configured it to be.
+               (asdf-call 'load-system :asdf)
+               ;; If the implementation-provided version was too old,
+               ;; we need to re-configure, because old configuration may have been moved away.
+               (unless (asdf-call 'version-satisfies provided-version "2.27")
+                 (configure-asdf)))
+             (unless (asdf-call 'version-satisfies (asdf-version) (required-asdf-version))
+               (error "This program needs ASDF ~A but could only find ASDF ~A"
+                      (required-asdf-version) (asdf-version)))
+             ;; Here, we specifically want the ASDF in the current git checkout over
+             ;; whatever quicklisp is providing, so we load quicklisp last.
+             ;; If the checkout weren't providing ASDF and we wanted to rely on Quicklisp
+             ;; to provide a copy of ASDF that the implementation might be lacking,
+             ;; we'd move this form right below the (funcall 'require "asdf") above.
+             ;; See also notes in try-load-quicklisp.
+             (try-load-quicklisp))
            ;; User-configurable parts
            (required-asdf-version () "3.1.2") ;; In the end, we want at least ASDF 3.1.2
            (asdf-lisp ()