diff --git a/test/make-hello-world.lisp b/test/make-hello-world.lisp
index de6a5e334d1ac8d98a258337555e5bf2d5505b0f..4d8618c536426881363a8fc57d2981abf6d76e6a 100644
--- a/test/make-hello-world.lisp
+++ b/test/make-hello-world.lisp
@@ -6,6 +6,6 @@
 
 (with-test ()
   (register-directory *asdf-directory*) ;; we need asdf-driver, and ECL can dump.
-  (register-directory (subpathname *asdf-directory* "uiop/"))
+  (register-directory *uiop-directory*)
   (operate 'load-fasl-op :hello-world-example)
   (operate 'program-op :hello-world-example))
diff --git a/test/script-support.lisp b/test/script-support.lisp
index ae049dfd18c567d599ed162e7df9e6ea79b87fb5..afab15b1937c08dea76510653e0b1ff80c94605e 100644
--- a/test/script-support.lisp
+++ b/test/script-support.lisp
@@ -161,6 +161,8 @@ Some constraints:
 (defun back-dir () #-gcl :back #+gcl :parent)
 (defparameter *asdf-directory*
   (truename (make-sub-pathname :directory (relative-dir (back-dir)) :defaults *test-directory*)))
+(defparameter *uiop-directory*
+  (truename (make-sub-pathname :directory (relative-dir "uiop") :defaults *asdf-directory*)))
 (defparameter *build-directory*
   (make-sub-pathname :directory (relative-dir "build") :defaults *asdf-directory*))
 (defparameter *implementation*
@@ -326,6 +328,7 @@ is bound, write a message and exit on an error.  If
 (defun load-asdf-system (&rest keys)
   (quietly
    (register-directory *asdf-directory*)
+   (register-directory *uiop-directory*)
    (apply (asym :oos) (asym :load-op) :asdf keys)))
 
 (defun call-with-asdf-conditions (thunk &optional verbose)
diff --git a/test/test-encodings.script b/test/test-encodings.script
index 903aebcf22a4b12a993ec522169b1b9721a848ca..2012138be7b729feb4f87429205ebe9f07c16300 100644
--- a/test/test-encodings.script
+++ b/test/test-encodings.script
@@ -64,7 +64,7 @@
 ;; Try to load asdf-encodings
 (setf *central-registry*
       (list *asdf-directory* ;; be sure that *OUR* asdf is first of any possible ASDF
-            (subpathname *asdf-directory* "uiop/") ;; be sure that *OUR* asdf is first of any possible ASDF
+            *uiop-directory* ;; be sure that ouir uiop is there, too.
             ;; try finding asdf-encodings it right next to asdf.
             (subpathname *asdf-directory* "../asdf-encodings/")))
 (unless (find-system :asdf-encodings nil)
diff --git a/test/test-program.script b/test/test-program.script
index 38b14b3f055f99b001aa36051a3fe8b3e07f017f..68fca6de5c4d39bd5452cecb24791928c1090683 100644
--- a/test/test-program.script
+++ b/test/test-program.script
@@ -16,7 +16,7 @@
 ;; Try to load lisp-invocation from xcvb
 (setf *central-registry*
       (list *asdf-directory* ;; be sure that *OUR* asdf is first of any possible ASDF
-            (subpathname *asdf-directory* "uiop/")
+            *uiop-directory*
             ;; try finding xcvb's lisp-invocation right next to asdf.
             (subpathname *asdf-directory* "../xcvb/")))
 (unless (find-system :lisp-invocation nil)
diff --git a/test/test-sysdef-asdf.script b/test/test-sysdef-asdf.script
index c6bf0d9dc69b6fc397729dad195e3fd3a0036606..9d3ca4c3b417a2fba8cf687d322dca929dd39313 100644
--- a/test/test-sysdef-asdf.script
+++ b/test/test-sysdef-asdf.script
@@ -7,6 +7,6 @@
 (initialize-source-registry
  `(:source-registry
    (:directory ,*asdf-directory*)
-   (:directory ,(subpathname *asdf-directory* "uiop/"))
+   (:directory ,*uiop-directory*)
    :ignore-inherited-configuration))
 (load-system :asdf)