diff --git a/.gitignore b/.gitignore
index c397355659c8f6cca46792e91ad4eb2ddf78fd6e..9216362dd69613fe0e8bd6308017267a24386fa2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,9 +28,7 @@ doc/asdf.t2d/
 LICENSE
 tmp/
 *.dribble
-*.fasl
-*.dfsl
-*.cfsl
+*.fas[bcl]
 *.fas
 *.lib
 *.[oahcisS]
diff --git a/Makefile b/Makefile
index 37830010aa396cb059ad7298ca919bdaf58ae034..2d7526de32a7b8dd0dbad37d76f0d21b461e76fe 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 cmucl abcl scl allegro lispworks
+lisps ?= ccl clisp sbcl ecl ecl-bytecodes cmucl abcl scl allegro lispworks
 endif
 
-## MINOR FAIL: ecl-bytecodes (failure in test-compile-file-failure.script)
 ## MINOR FAIL: xcl (logical pathname issue in asdf-pathname-test.script)
 ## OCCASIONALLY TESTED BY NOT ME: allegromodern (not in my free demo version)
 ## MAJOR FAIL: gclcvs -- COMPILER BUG! Upstream fixed it, but upstream fails to compile.
diff --git a/asdf.asd b/asdf.asd
index f426c49f4ab86d4eb72fb17be20b450abca7a3fe..c4bc1e46477b9905d86f05e65341ea1016febd2f 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.25" ;; to be automatically updated by bin/bump-revision
+  :version "2.26.26" ;; to be automatically updated by bin/bump-revision
   :depends-on ()
   :components
   ((:file "asdf")))
diff --git a/asdf.lisp b/asdf.lisp
index 7aa08ea61ae7d2545ec24f42b133c28757760b19..0b94273b8d9ffe49dee3e042258e77edaf2bdb2f 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.25: Another System Definition Facility.
+;;; This is ASDF 2.26.26: 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.25")
+         (asdf-version "2.26.26")
          (existing-asdf (find-class 'component nil))
          (existing-version *asdf-version*)
          (already-there (equal asdf-version existing-version)))
@@ -246,36 +246,31 @@
            :unintern
            (#:*asdf-revision* #:around #:asdf-method-combination
             #:split #:make-collector #:do-dep #:do-one-dep
-            #:resolve-relative-location-component #:resolve-absolute-location-component
-            #:traverse-action #:visit-action #:traverse
             #:loaded-systems ; makes for annoying SLIME completion
             #:output-files-for-system-and-operation) ; obsolete ASDF-BINARY-LOCATION function
            :export
-           (#:defsystem #:oos #:operate #:find-system #:locate-system #:run-shell-command
+           (#:defsystem #:find-system #:locate-system
+            #:oos #:operate #:traverse #:perform-plan
             #:system-definition-pathname #:with-system-definitions
             #:search-for-system-definition #:find-component #:component-find-path
             #:compile-system #:load-system #:load-systems
             #:require-system #:test-system #:clear-system
-            #:operation #:compile-op #:load-op #:load-source-op #:test-op
-            #:upward-operation #:downward-operation #:prepare-op #:prepare-source-op
-            #:parent-component #:child-component
-            #:feature #:version #:version-satisfies
-            #:upgrade-asdf
+            #:operation #:upward-operation #:downward-operation
+            #:load-op #:prepare-op #:compile-op #:load-fasl-op
+            #:prepare-source-op #:load-source-op #:test-op
+            #:feature #:version #:version-satisfies #:upgrade-asdf
             #:implementation-identifier #:implementation-type #:hostname
             #:input-files #:output-files #:output-file #:perform
             #:operation-done-p #:explain #:component-sibling-dependencies
-            #:component-load-dependencies
-
-            #:component #:source-file
-            #:c-source-file #:cl-source-file #:java-source-file
-            #:cl-source-file.cl #:cl-source-file.lsp
-            #:static-file
-            #:doc-file
-            #:html-file
-            #:text-file
+            #:component-load-dependencies #:run-shell-command ; deprecated, do not use
+            #:precompiled-system #:compiled-file
+            #+ecl #:make-build #+mkcl #:bundle-system
+
+            #:component #:parent-component #:child-component #:system #:module
+            #:source-file #:c-source-file #:java-source-file
+            #:cl-source-file #:cl-source-file.cl #:cl-source-file.lsp
+            #:static-file #:doc-file #:html-file :text-file
             #:source-file-type
-            #:module                     ; components
-            #:system
             #:unix-dso
 
             #:component-children          ; component accessors
@@ -373,8 +368,6 @@
             #:system-source-registry
             #:user-source-registry-directory
             #:system-source-registry-directory
-            #:load-fasl-op #:precompiled-system #:compiled-file
-            #+ecl #:make-build #+mkcl #:bundle-system
 
             ;; Utilities: please use asdf-utils instead
             #|
@@ -504,8 +497,7 @@ or ASDF:LOAD-SOURCE-OP if your fasl loading is somehow broken.")
     ((defdef (def* def)
        `(defmacro ,def* (name formals &rest rest)
           `(progn
-             ;;#+(or ecl (and gcl (not gcl-pre2.7))) (fmakunbound ',name)
-             #-gcl-pre2.7 (fmakunbound ',name)
+             #+(or ecl (and gcl (not gcl-pre2.7))) (fmakunbound ',name)
              #-gcl ; gcl 2.7.0 notinline functions lose secondary return values :-(
              ,(when (and #+ecl (symbolp name)) ; fails for setf functions on ecl
                 `(declaim (notinline ,name)))
@@ -1367,12 +1359,6 @@ Returns two values:
    (children-by-name
     :reader module-components-by-name ; backwards compatibility
     :accessor component-children-by-name)
-   ;; What to do if we can't satisfy a dependency of one of this module's
-   ;; components.  This allows a limited form of conditional processing.
-   (if-component-dep-fails
-    :initform :fail
-    :initarg :if-component-dep-fails
-    :accessor module-if-component-dep-fails)
    (default-component-class
     :initform nil
     :initarg :default-component-class
@@ -2113,7 +2099,7 @@ PREVIOUS-TIME when not null is the time at which the PREVIOUS system was loaded.
        o))
 
 (defmethod find-operation ((operation operation) (sub operation))
-  (declare (ignore operation))
+  (declare (ignorable operation))
   sub)
 
 (defmethod find-operation ((operation operation) (sub symbol))
@@ -4726,7 +4712,7 @@ with a different configuration, so the configuration would be re-read then."
   (declare (ignorable o c))
   nil)
 (defmethod input-files (o (c compiled-file))
-  (declare (ignore o))
+  (declare (ignorable o))
   (load (component-pathname c)))
 (defmethod perform ((o load-op) (c compiled-file))
   (declare (ignorable o))
diff --git a/test/test-compile-file-failure.lisp b/test/test-compile-file-failure.lisp
index ed9b02eebdde1f89277a292a4b49d50a06960253..5149add01b2adafc2c7de213ff5f769a25dcb184 100644
--- a/test/test-compile-file-failure.lisp
+++ b/test/test-compile-file-failure.lisp
@@ -1,4 +1,6 @@
 (eval-when (:compile-toplevel :load-toplevel :execute)
   ;; CLISP 2.48 has a bug that makes this test fail. Work around:
-  #+clisp (when (eq asdf:*compile-file-failure-behaviour* :error) (error 'asdf:compile-error))
+  #+(or clisp ecl) (when (and (eq asdf:*compile-file-failure-behaviour* :error)
+                              #+ecl (equal (fasl-type) "fasc"))
+                     (error 'asdf:compile-error :operation "op" :component "comp"))
   (warn "Warning."))
diff --git a/test/test-weakly-depends-on-present.asd b/test/test-weakly-depends-on-present.asd
index e88132fd82e70c36d12e87cc61e7575177e3131d..04c3b55baa413bd05bfb855b4082a73f6c64bcb2 100644
--- a/test/test-weakly-depends-on-present.asd
+++ b/test/test-weakly-depends-on-present.asd
@@ -1,5 +1,4 @@
 (defsystem test-weakly-depends-on-present
   :weakly-depends-on (file3-only)
-  :if-component-dep-fails :ignore
   :components ((:file "file1")))
 
diff --git a/test/test-weakly-depends-on-unpresent.asd b/test/test-weakly-depends-on-unpresent.asd
index ed33034534b6d0965ba6f3c59851b5fbfdf9e8c5..3b5790c24a92652bc5d58b398bc57756cc6921eb 100644
--- a/test/test-weakly-depends-on-unpresent.asd
+++ b/test/test-weakly-depends-on-unpresent.asd
@@ -1,5 +1,3 @@
 (defsystem test-weakly-depends-on-unpresent
   :weakly-depends-on (does-not-exist)
-  :if-component-dep-fails :ignore
   :components ((:file "file1")))
-