diff --git a/asdf.asd b/asdf.asd
index d99f71465ce7b68dedccdecdada1a1ed723463d0..625eb1487b3373c1df92eeb1cbc51a5ebb02f32e 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -14,7 +14,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.26.57" ;; to be automatically updated by bin/bump-revision
+  :version "2.26.58" ;; to be automatically updated by bin/bump-revision
   :depends-on ()
   :components
   ((:file "asdf")))
diff --git a/asdf.lisp b/asdf.lisp
index 3a902011762a9c84869298823e546505dd6341e1..639552ad1274b7f06742ce8ac233fb1a498cc284 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -1,5 +1,5 @@
 ;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; coding: utf-8 -*-
-;;; This is ASDF 2.26.57: Another System Definition Facility.
+;;; This is ASDF 2.26.58: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
@@ -126,7 +126,7 @@
          ;; "2.345.6" would be a development version in the official upstream
          ;; "2.345.0.7" would be your seventh local modification of official release 2.345
          ;; "2.345.6.7" would be your seventh local modification of development version 2.345.6
-         (asdf-version "2.26.57")
+         (asdf-version "2.26.58")
          (existing-asdf (find-class 'component nil))
          (existing-version *asdf-version*)
          (already-there (equal asdf-version existing-version)))
@@ -2657,8 +2657,8 @@ in some previous image, or T if it needs to be done.")
          #+mkcl (o (compile-file-pathname i :fasl-p nil))) ;; object file
     #+ecl (if (use-ecl-byte-compiler-p)
               (list f)
-              (list (compile-file-pathname i :type :object) f))
-    #+mkcl (list o f)
+              (list f (compile-file-pathname i :type :object)))
+    #+mkcl (list f o)
     #-(or ecl mkcl) (list f)))
 
 (defmethod component-depends-on ((o compile-op) (c component))
@@ -4600,17 +4600,17 @@ with a different configuration, so the configuration would be re-read then."
 
   (setf *compile-op-compile-file-function* 'compile-file-keeping-object)
 
-  (defun* compile-file-keeping-object (input-file &rest keys &key &allow-other-keys)
+  (defun* compile-file-keeping-object (input-file &rest keys &key output-file &allow-other-keys)
     (#+ecl if #+ecl (use-ecl-byte-compiler-p) #+ecl (apply 'compile-file* input-file keys)
      #+mkcl progn
      (multiple-value-bind (object-file flags1 flags2)
          (apply 'compile-file* input-file
-                #+ecl :system-p #+ecl t #+mkcl :fasl-p #+mkcl nil keys)
+                #+ecl :system-p #+ecl t #+mkcl :fasl-p #+mkcl nil
+                :output-file (compile-file-pathname
+                              output-file . #+ecl (:type :object) #+mkcl (:fasl-p nil)) keys)
        (values (and object-file
                     (compiler::build-fasl
-                     (compile-file-pathname object-file
-                                            #+ecl :type #+ecl :fasl #+mkcl :fasl-p #+mkcl t)
-                     #+ecl :lisp-files #+mkcl :lisp-object-files (list object-file))
+                     output-file #+ecl :lisp-files #+mkcl :lisp-object-files (list object-file))
                     object-file)
                flags1
                flags2)))))
diff --git a/test/script-support.lisp b/test/script-support.lisp
index 53fda4e4c5e6bcbce2f70d72d08d35e9bad1a585..8ebeab53953d5fd2ea6fc66c5ee09c3a761911bd 100644
--- a/test/script-support.lisp
+++ b/test/script-support.lisp
@@ -67,6 +67,9 @@
       (load old-asdf))))
 
 (defun configure-asdf ()
+  #+ecl (eval `(trace ,@(loop :for s :in '(:COMPILE-FILE* :perform-lisp-compilation)
+                              :collect (find-symbol (string s) :asdf))
+                      c::builder))
   (funcall (find-symbol (string :initialize-source-registry) :asdf)
            `(:source-registry :ignore-inherited-configuration))
   (let ((registry (find-symbol (string :*central-registry*) :asdf)))
@@ -157,6 +160,7 @@ is bound, write a message and exit on an error.  If
                    #+sbcl (sb-debug:backtrace 69)
                    #+clozure (ccl:print-call-history :count 69 :start-frame-number 1)
                    #+clisp (system::print-backtrace)
+                   #+ecl (si::tpl-backtrace)
                    (format *error-output* "~&ABORTING:~% ~A~%" c)
                    (finish-output *error-output*)
                    (finish-output *standard-output*)
@@ -261,7 +265,6 @@ outputs a tag plus a list of variable and their values, returns the last value"
   (DBG :script-support *package* *test-directory* *asdf-directory* *asdf-lisp* *asdf-fasl*
        ))
 
-
 #|
 (DBG :cas o c just-done plan stamp-lookup out-files in-files out-op op-time dep-stamp out-stamps in-stamps missing-in missing-out all-present earliest-out latest-in up-to-date-p done-stamp (operation-done-p o c))
 |#
diff --git a/test/test-concatenate-source.script b/test/test-concatenate-source.script
index 95e9396d06dc8a7853666f49944971f9b153132a..e7774fe15b1f1f5b0b2fc3992230d0623eddce73 100644
--- a/test/test-concatenate-source.script
+++ b/test/test-concatenate-source.script
@@ -25,9 +25,9 @@
     (assert-equal
      (output-files mcso sys)
      (input-files mccso sys))
-    (assert-equal
-     (output-file mccso sys)
-     (apply-output-translations (compile-file-pathname (asdf::subpathname *test-directory* "test-concatenate-source.lisp"))))
+    (assert-equal ;; on ECL, we get un-equal pathnames.
+     (princ-to-string (output-file mccso sys))
+     (princ-to-string (apply-output-translations (compile-file-pathname (asdf::subpathname *test-directory* "test-concatenate-source.lisp")))))
     (assert-equal
      (output-files mccso sys)
      (input-files mlccso sys))
diff --git a/test/test-retry-loading-component-1.script b/test/test-retry-loading-component-1.script
index 8ec9180cf5a1ac48db538b32b183501f8741e84d..aff22cc4e540d00654927f55a7bdd8e4bb3f53a6 100644
--- a/test/test-retry-loading-component-1.script
+++ b/test/test-retry-loading-component-1.script
@@ -13,8 +13,9 @@
  (handler-bind ((error (lambda (c)
                          (format t "~&Caught error ~s" c)
                          (setf *caught-error* t)
-                         (asdf:run-shell-command
-                          "cp try-reloading-dependency.hidden try-reloading-dependency.asd")
+                         (asdf::concatenate-files
+                          '("try-reloading-dependency.hidden")
+                          "try-reloading-dependency.asd")
                          (DBG "trlc1 5")
                          (multiple-value-bind (name mode)
                              (find-symbol (symbol-name 'retry) :asdf)