diff --git a/Makefile b/Makefile
index c33dcfb61b5a9ef3204b7789a7d4c8b8f241a0e8..9732f513792900d3a9bab9b2cf9460f784006e67 100644
--- a/Makefile
+++ b/Makefile
@@ -22,6 +22,7 @@ CCL ?= ccl
 CLISP ?= clisp
 SBCL ?= sbcl
 ECL ?= ecl
+MKCL ?= mkcl
 CMUCL ?= cmucl
 ABCL ?= abcl
 SCL ?= scl
@@ -87,6 +88,7 @@ test-upgrade:
 	use_clisp () { li="${CLISP} -norc -ansi --quiet --quiet" ; ev="-x" ; } ; \
 	use_sbcl () { li="${SBCL} --noinform --no-userinit" ; ev="--eval" ; } ; \
 	use_ecl () { li="${ECL} -norc" ; ev="-eval" ; } ; \
+	use_mkcl () { li="${MKCL} -norc" ; ev="-eval" ; } ; \
 	use_cmucl () { li="${CMUCL} -noinit" ; ev="-eval" ; } ; \
 	use_abcl () { li="${ABCL} --noinit --nosystem --noinform" ; ev="--eval" ; } ; \
 	use_scl () { li="${SCL} -noinit" ; ev="-eval" ; } ; \
diff --git a/asdf.lisp b/asdf.lisp
index cdf4ca006360dd202f1f7f3bf571d19500d62ed3..5146b2c97da45b147938a966dd729d34281401a5 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -4223,7 +4223,7 @@ with a different configuration, so the configuration would be re-read then."
 (defun* default-source-registry ()
   `(:source-registry
     #+sbcl (:directory ,(subpathname (user-homedir) ".sbcl/systems/"))
-    #-mkcl (:directory ,(default-directory))
+    (:directory ,(default-directory))
     ,@(loop :for dir :in
         `(,@(when (os-unix-p)
               `(,(or (getenv-absolute-directory "XDG_DATA_HOME")
diff --git a/test/compile-asdf.lisp b/test/compile-asdf.lisp
index ee977f76e9ad982b108d57d291b824d0a5767dcb..8dc651f047ab0491277198738d238c75ce81ff25 100644
--- a/test/compile-asdf.lisp
+++ b/test/compile-asdf.lisp
@@ -29,6 +29,9 @@
 			((or c:compiler-note c::compiler-debug-note
 			     c:compiler-warning) ;; ECL emits more serious warnings than it should.
                                #'muffle-warning)
+                        #+mkcl
+			((or compiler:compiler-note)
+			 #'muffle-warning)
 			#-(or cmu scl)
                         (style-warning
                          #'(lambda (w)
diff --git a/test/run-tests.sh b/test/run-tests.sh
index d93967ccae5c55e202e8b76a4cb40ef00b937701..296bab2f63f8b4d6314c2d7fdda42954ccdfed78 100755
--- a/test/run-tests.sh
+++ b/test/run-tests.sh
@@ -154,6 +154,10 @@ case "$lisp" in
     # ./lispworks-6-0-0-x86-linux -siteinit - -init - -build /tmp/build.lisp
     flags="-siteinit - -init -"
     eval="-eval" ;;
+  mkcl)
+    command="${MKCL:-mkcl}"
+    flags="-norc"
+    eval="-eval" ;;
   sbcl)
     command="${SBCL:-sbcl}"
     flags="--noinform --userinit /dev/null --sysinit /dev/null"
diff --git a/test/script-support.lisp b/test/script-support.lisp
index 6ad9a094c91bb39a389a558922b9d6ae1e0e7fc8..2b3a17721ecdaa82e78e748ff316e429f32d5fcb 100644
--- a/test/script-support.lisp
+++ b/test/script-support.lisp
@@ -34,6 +34,7 @@
                     #+ecl :ecl
                     #+gcl :gcl
                     #+lispworks :lispworks
+		    #+mkcl :mkcl
                     #+sbcl :sbcl
                     #+scl :scl
                     #+xcl :xcl))))
@@ -76,6 +77,8 @@
   (lispworks:quit :status return :confirm nil :return nil :ignore-errors-p t)
   #+(or openmcl mcl)
   (ccl::quit return)
+  #+mkcl
+  (mk-ext:quit :exit-code return)
   #+sbcl #.(let ((exit (find-symbol "EXIT" :sb-ext))
                  (quit (find-symbol "QUIT" :sb-ext)))
              (cond