diff --git a/asdf.asd b/asdf.asd
index f363af231c009fe2f0d0cbeea1f5ab08e7374c1f..a96c5d20053a127cc43dbc9d9cdc9d1a82f1e5b1 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -74,7 +74,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "3.0.1.5" ;; to be automatically updated by make bump-version
+  :version "3.0.1.6" ;; to be automatically updated by make bump-version
   :depends-on ()
   #+asdf3 :encoding #+asdf3 :utf-8
   ;; For most purposes, asdf itself specially counts as a builtin system.
diff --git a/header.lisp b/header.lisp
index f6e001c735f469c3ebd255110e58e2e83cbd6eab..6d011e8d2036df3c42a54a302a24cdbc6a432b38 100644
--- a/header.lisp
+++ b/header.lisp
@@ -1,5 +1,5 @@
 ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
-;;; This is ASDF 3.0.1.5: Another System Definition Facility.
+;;; This is ASDF 3.0.1.6: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
diff --git a/plan.lisp b/plan.lisp
index cf6c915b25f87c89a63e171b4e539bb0d5c2d0cd..a3c895df914e50835097b32f11bb8c36082afcbc 100644
--- a/plan.lisp
+++ b/plan.lisp
@@ -391,6 +391,9 @@ the action of OPERATION on COMPONENT in the PLAN"))
            :when (or force (not (nth-value 1 (compute-action-stamp nil o c))))
            :do (perform-with-restarts o c)))
 
+  (defmethod plan-operates-on-p ((plan plan-traversal) (component-path list))
+    (plan-operates-on-p (plan-actions plan) component-path))
+
   (defmethod plan-operates-on-p ((plan list) (component-path list))
     (find component-path (mapcar 'cdr plan)
           :test 'equal :key 'component-find-path)))
@@ -422,7 +425,7 @@ the action of OPERATION on COMPONENT in the PLAN"))
     (let ((plan (apply 'make-instance (or plan-class 'filtered-sequential-plan) keys)))
       (loop* :for (o . c) :in actions :do
              (traverse-action plan o c t))
-      (plan-actions plan)))
+      plan))
 
   (define-convenience-action-methods traverse-sub-actions (operation component &key))
   (defmethod traverse-sub-actions ((operation operation) (component component) &rest keys &key &allow-other-keys)
@@ -438,7 +441,8 @@ the action of OPERATION on COMPONENT in the PLAN"))
 
   (defmethod required-components (system &rest keys &key (goal-operation 'load-op) &allow-other-keys)
     (remove-duplicates
-     (mapcar 'cdr (apply 'traverse-sub-actions goal-operation system
-                         (remove-plist-key :goal-operation keys)))
+     (mapcar 'cdr (plan-actions
+                   (apply 'traverse-sub-actions goal-operation system
+                          (remove-plist-key :goal-operation keys))))
      :from-end t)))
 
diff --git a/upgrade.lisp b/upgrade.lisp
index cc6794916682f522470a00adfc4be47734fa9592..d28aa8f5930908f2219d49135176f1615649f95b 100644
--- a/upgrade.lisp
+++ b/upgrade.lisp
@@ -52,7 +52,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO
          ;; "3.4.5.67" would be a development version in the official upstream of 3.4.5.
          ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5
          ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67
-         (asdf-version "3.0.1.5")
+         (asdf-version "3.0.1.6")
          (existing-version (asdf-version)))
     (setf *asdf-version* asdf-version)
     (when (and existing-version (not (equal asdf-version existing-version)))
diff --git a/version.lisp-expr b/version.lisp-expr
index 5888e60158d6ae11cd41a4e35099b0044ad7abb6..21342a4b6482665282a2d0a707f817f687d19e44 100644
--- a/version.lisp-expr
+++ b/version.lisp-expr
@@ -1 +1 @@
-"3.0.1.5"
+"3.0.1.6"