diff --git a/Makefile b/Makefile
index 94db918994ca9ce87459300d0bef0f344edb081c..62d5190145c60e92174da821ee9f3da486a42193 100644
--- a/Makefile
+++ b/Makefile
@@ -7,10 +7,9 @@ sourceDirectory := $(shell pwd)
 ifdef ASDF_TEST_LISPS
 lisps ?= ${ASDF_TEST_LISPS}
 else
-lisps ?= ccl clisp sbcl ecl ecl-bytecodes cmucl abcl scl allegro lispworks allegromodern
+lisps ?= ccl clisp sbcl ecl ecl_bytecodes cmucl abcl scl allegro lispworks allegromodern xcl
 endif
 
-## MINOR FAIL: xcl (logical pathname issue in asdf-pathname-test.script)
 ## MAJOR FAIL: gclcvs -- COMPILER BUG! Upstream fixed it, but upstream fails to compile.
 ## NOT SUPPORTED BY OUR TESTS: cormancl genera lispworks-personal-edition mkcl rmcl. Manually tested once in a while.
 
@@ -91,6 +90,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_ecl_bytecodes () { li="${ECL} -norc -eval (ext::install-bytecodes-compiler)" ; 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" ; } ; \
@@ -115,12 +115,12 @@ test-upgrade:
 		: Skip, because ccl broke old asdf ;; \
 	      cmucl:1.*|cmucl:2.00*|cmucl:2.01[0-4]:*) \
 		: Skip, CMUCL has problems before 2.014.7 due to source-registry upgrade ;; \
-	      ecl:1.*|ecl:2.0[01]*|ecl:2.20:*) \
+	      ecl*:1.*|ecl*:2.0[01]*|ecl*:2.20:*) \
 		: Skip, because of various ASDF issues ;; \
 	      mkcl:1.*|mkcl:2.0[01]*|mkcl:2.2[0-3]:*) \
 		: Skip, because MKCL is only supported starting with 2.24 ;; \
 	      xcl:1.*|xcl:2.00*|xcl:2.01[0-4]:*) \
-		: Skip, because it is slow and XCL comes with 2.014.2 ;; \
+		: XCL support starts with ASDF 2.014.2 ;; \
 	      *) (set -x ; \
                   case $$x in \
 		    load-system) l="$$lo (asdf-test::load-asdf-system)" ;; \
@@ -157,7 +157,6 @@ test-all-upgrade:
 		${MAKE} test-upgrade lisp=$$lisp || exit 1 ; \
 	done
 
-
 test-all: test-forward-references doc test-all-lisps
 
 # Note that the debian git at git://git.debian.org/git/pkg-common-lisp/cl-asdf.git is stale,
diff --git a/asdf.asd b/asdf.asd
index 4b2a795e9216082fae17ab92fd465322433fb41b..4f65ba3db049a771895914b1644573632f922dc4 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.43" ;; to be automatically updated by bin/bump-revision
+  :version "2.26.44" ;; to be automatically updated by bin/bump-revision
   :depends-on ()
   :components
   ((:file "asdf")))
diff --git a/asdf.lisp b/asdf.lisp
index 7a03e53668a42c4ba9f762a6f4e2247aeeb67913..ff167d13cabb4061d18a78373e0381ccb0d152a9 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.43: Another System Definition Facility.
+;;; This is ASDF 2.26.44: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
@@ -118,7 +118,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.43")
+         (asdf-version "2.26.44")
          (existing-asdf (find-class 'component nil))
          (existing-version *asdf-version*)
          (already-there (equal asdf-version existing-version)))
@@ -1233,7 +1233,10 @@ Returns two values:
               ((m module) added deleted plist &key)
               (declare (ignorable m added deleted plist))
               (when (and (member 'children added) (member 'components deleted))
-                (setf (slot-value m 'children) (getf plist 'components))
+                (setf (slot-value m 'children)
+                      ;; old ECLs provide an alist instead of a plist(!)
+                      (if (or #+ecl (consp (first plist))) (or #+ecl (cdr (assoc 'components plist)))
+                          (getf plist 'components)))
                 (compute-children-by-name m))
               (when (typep m 'system)
                 (when (member 'source-file added)
diff --git a/test/run-tests.sh b/test/run-tests.sh
index 637969f49f69e4c0d483742439bbd03054764949..1bbeff918ccf256c436bf9349e3e00a507976889 100755
--- a/test/run-tests.sh
+++ b/test/run-tests.sh
@@ -139,7 +139,7 @@ case "$lisp" in
     command="${ECL:-ecl}"
     flags="-norc -load sys:cmp"
     eval="-eval" ;;
-  ecl-bytecodes)
+  ecl_bytecodes)
     command="${ECL:-ecl}"
     flags="-norc -eval (ext::install-bytecodes-compiler)"
     eval="-eval" ;;
diff --git a/test/test-bundle.script b/test/test-bundle.script
index 9c858ed0229fe91c903457249a5c70eff54fd469..2f935b1268dcf2e4ef90c2dafcaa6e733babe761 100644
--- a/test/test-bundle.script
+++ b/test/test-bundle.script
@@ -14,6 +14,7 @@
  (when (find-package :test-package) (delete-package :test-package))
  (asdf:defsystem :test-bundle-1 :components ((:file "file1") (:file "file3")))
  (asdf:defsystem :test-bundle-2 :depends-on (:test-bundle-1) :components ((:file "file2")))
+ #-(and ecl ecl-bytecmp)
  (let* ((op (make-instance 'asdf::fasl-op))
         (bundle-1 (asdf:output-file op (find-system :test-bundle-1)))
         (bundle-2 (asdf:output-file op (find-system :test-bundle-2))))