diff --git a/Makefile b/Makefile
index 042a53d588339b9b449e8d7da2192a80c6f6b010..87297bc820b76d975ed5dddc4a8b20f5856b4a5b 100644
--- a/Makefile
+++ b/Makefile
@@ -54,7 +54,7 @@ XCL ?= xcl
 
 header_lisp := header.lisp
 driver_lisp := uiop/package.lisp uiop/common-lisp.lisp uiop/utility.lisp uiop/os.lisp uiop/pathname.lisp uiop/filesystem.lisp uiop/stream.lisp uiop/image.lisp uiop/run-program.lisp uiop/lisp-build.lisp uiop/configuration.lisp uiop/backward-driver.lisp uiop/driver.lisp
-defsystem_lisp := upgrade.lisp component.lisp system.lisp cache.lisp find-system.lisp find-component.lisp operation.lisp action.lisp lisp-action.lisp plan.lisp operate.lisp output-translations.lisp source-registry.lisp backward-internals.lisp parse-defsystem.lisp bundle.lisp concatenate-source.lisp backward-interface.lisp package-system.lisp interface.lisp user.lisp footer.lisp
+defsystem_lisp := upgrade.lisp component.lisp system.lisp cache.lisp find-system.lisp find-component.lisp operation.lisp action.lisp lisp-action.lisp plan.lisp operate.lisp output-translations.lisp source-registry.lisp backward-internals.lisp parse-defsystem.lisp bundle.lisp concatenate-source.lisp backward-interface.lisp package-inferred-system.lisp interface.lisp user.lisp footer.lisp
 all_lisp := $(header_lisp) $(driver_lisp) $(defsystem_lisp)
 
 # Making ASDF itself should be our first, default, target:
diff --git a/asdf.asd b/asdf.asd
index 8154109a2899262a4517904be90ded9a2a21b155..1c3b424ea417ba007e3e0835b7e454eb91e9f866 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -3,7 +3,7 @@
 ;;;                                                                  ;;;
 ;;; Free Software available under an MIT-style license.              ;;;
 ;;;                                                                  ;;;
-;;; Copyright (c) 2001-2013 Daniel Barlow and contributors           ;;;
+;;; Copyright (c) 2001-2014 Daniel Barlow and contributors           ;;;
 ;;;                                                                  ;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
@@ -61,11 +61,11 @@
    (:file "bundle" :depends-on ("lisp-action" "operate" "parse-defsystem"))
    (:file "concatenate-source" :depends-on ("plan" "parse-defsystem" "bundle"))
    (:file "backward-interface" :depends-on ("operate" "output-translations"))
-   (:file "package-system" :depends-on ("system" "find-system" "parse-defsystem"))
+   (:file "package-inferred-system" :depends-on ("system" "find-system" "parse-defsystem"))
    (:file "interface" :depends-on
           ("parse-defsystem" "concatenate-source"
            "backward-interface" "backward-internals"
-           "output-translations" "source-registry" "package-system"))
+           "output-translations" "source-registry" "package-inferred-system"))
    (:file "user" :depends-on ("interface"))
    (:file "footer" :depends-on ("user"))))
 
@@ -75,13 +75,13 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "3.1.0.113" ;; to be automatically updated by make bump-version
+  :version "3.1.0.116" ;; to be automatically updated by make bump-version
   :depends-on ()
   #+asdf3 :encoding #+asdf3 :utf-8
-  :class #.(if (find-class 'package-system nil) 'package-system 'system)
+  :class #.(if (find-class 'package-inferred-system nil) 'package-inferred-system 'system)
   ;; For most purposes, asdf itself specially counts as a builtin system.
   ;; If you want to link it or do something forbidden to builtin systems,
-  ;; specify separate dependencies on UIOP (aka asdf-driver) and asdf/defsystem.
+  ;; specify separate dependencies on uiop (aka asdf-driver) and asdf/defsystem.
   #+asdf3 :builtin-system-p #+asdf3 t
   :components ((:module "build" :components ((:file "asdf"))))
   :in-order-to (#+asdf3 (prepare-op (monolithic-concatenate-source-op :asdf/defsystem))))
diff --git a/component.lisp b/component.lisp
index 392607943f2745381e91a61b60ff96a646c0b202..2dec0edfb0ec912ad4e6e88e0462da811364988e 100644
--- a/component.lisp
+++ b/component.lisp
@@ -273,9 +273,8 @@ children.")))
 ;;;; version-satisfies
 (with-upgradability ()
   ;; short-circuit testing of null version specifications.
-  ;; this is an all-pass                  
+  ;; this is an all-pass, without warning
   (defmethod version-satisfies :around ((c t) (version null))
-    (declare (ignorable c version))
     t)
   (defmethod version-satisfies ((c component) version)
     (unless (and version (slot-boundp c 'version) (component-version c))
diff --git a/doc/asdf.texinfo b/doc/asdf.texinfo
index db392ca55c1d180b7d80290b1a654d7d7e59e705..4afb678460ec74945897e926c467f80321345e96 100644
--- a/doc/asdf.texinfo
+++ b/doc/asdf.texinfo
@@ -140,7 +140,7 @@ Defining systems with defsystem
 * A more involved example::
 * The defsystem grammar::
 * Other code in .asd files::
-* The package-system extension::
+* The package-inferred-system extension::
 
 The Object model of ASDF
 
@@ -1040,7 +1040,7 @@ software.
 * A more involved example::
 * The defsystem grammar::
 * Other code in .asd files::
-* The package-system extension::
+* The package-inferred-system extension::
 @end menu
 
 @node  The defsystem form, A more involved example, Defining systems with defsystem, Defining systems with defsystem
@@ -1682,7 +1682,7 @@ this provided
 a roundabout way to express conditional compilation.
 
 
-@node Other code in .asd files, The package-system extension, The defsystem grammar, Defining systems with defsystem
+@node Other code in .asd files, The package-inferred-system extension, The defsystem grammar, Defining systems with defsystem
 @section Other code in .asd files
 
 Files containing @code{defsystem} forms
@@ -1710,8 +1710,8 @@ of output from ASDF operations.
 @end itemize
 
 
-@node The package-system extension,  , Other code in .asd files, Defining systems with defsystem
-@section The package-system extension
+@node The package-inferred-system extension,  , Other code in .asd files, Defining systems with defsystem
+@section The package-inferred-system extension
 
 Starting with release 3.1.1,
 ASDF supports a one-package-per-file style of programming,
@@ -1719,40 +1719,29 @@ whereby each file is its own system,
 and dependencies are deduced from the @code{defpackage} form
 (or its variant @code{uiop:define-package}).
 
-In this style, packages refer to a same-named system (downcased),
-unless specially registered.
-If a system is defined with @code{:class :package-system},
+
+In this style, packages refer to a system with the same name (downcased);
+and if a system is defined with @code{:class package-inferred-system},
 then system names that start with that name
 (using the slash @code{/} separator)
 refer to files under the filesystem hierarchy where the system is defined.
-For instance, if system @code{lil} is defined in
-@file{/home/tunes/cl/lisp-interface-library/lil.asd}, then package @code{lil/interface/order}
-will be found in file @file{/home/tunes/cl/lisp-interface-library/interface/order.lisp}.
-
-This style was made popular
-by @code{faslpath} and @code{quick-build} before (@pxref{Bibliography}).
-It seems to make for more maintainable code,
-at the cost of a stricter package discipline:
-by imposing upon programmers a discipline of smaller namespaces,
-with explicit dependencies and especially explicit forward dependencies,
-the style encourages good factoring of the code into coherent units;
-by contrast, the traditional style of "everything in one package"
-has low overhead but doesn't scale very well.
-
-It is used by ASDF itself (starting with ASDF 3, aka 2.27)
-and by @code{lisp-interface-library},
-to the great satisfaction of the author (FRR).
-Others who have tried it before also expressed similar results.
-
-Thus, for instance, in @code{lisp-interface-library},
-the file @file{lil.asd} contains the following incantations (elided):
-
+For instance, if system @code{my-lib} is defined in
+@file{/foo/bar/my-lib/my-lib.asd}, then system @code{my-lib/src/utility}
+will be found in file @file{/foo/bar/my-lib/src/utility.lisp}.
+
+This style was made popular by @code{faslpath} and @code{quick-build} before,
+and at the cost of a stricter package discipline,
+seems to make for more maintainable code.
+It is used by ASDF itself (starting with ASDF 3) and by @code{lisp-interface-library}.
+
+To use this style, choose a toplevel system name, e.g. @code{my-lib},
+and create a file @file{my-lib.asd}
+with the @code{:class :package-inferred-system} option in its @code{defsystem}.
+For instance:
 @example
-#-asdf3 (error "LIL requires ASDF 3 or later. Please upgrade your ASDF.")
-
-(defsystem lil
-  :description "LIL: Lisp Interface Library" ...
-  :class :package-system
+#-asdf (error "my-lib requires ASDF 3")
+(defsystem my-lib
+  :class :package-inferred-system
   :defsystem-depends-on (:asdf-package-system)
   :depends-on (:lil/interface/all
                :lil/pure/all
diff --git a/header.lisp b/header.lisp
index ba07b30862dd88d0d1ab586542af6dad675b620c..3e6aff96863310e0c71ef960c9b07672f36e26ef 100644
--- a/header.lisp
+++ b/header.lisp
@@ -1,5 +1,5 @@
 ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; buffer-read-only: t; -*-
-;;; This is ASDF 3.1.0.113: Another System Definition Facility.
+;;; This is ASDF 3.1.0.116: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
diff --git a/interface.lisp b/interface.lisp
index 13d052231f812b898bb76f8a4413a1ed1dd8b5cd..ea703c1e969d58748c2620a966b707e482bdb8d0 100644
--- a/interface.lisp
+++ b/interface.lisp
@@ -12,7 +12,7 @@
    :asdf/operation :asdf/action :asdf/lisp-action
    :asdf/output-translations :asdf/source-registry
    :asdf/plan :asdf/operate :asdf/parse-defsystem :asdf/bundle :asdf/concatenate-source
-   :asdf/backward-internals :asdf/backward-interface :asdf/package-system)
+   :asdf/backward-internals :asdf/backward-interface :asdf/package-inferred-system)
   ;; Note: (1) we are NOT automatically reexporting everything from previous packages.
   ;; (2) we only reexport UIOP functionality when backward-compatibility requires it.
   (:export
@@ -59,7 +59,8 @@
    #:static-file #:doc-file #:html-file
    #:file-type #:source-file-type
 
-   #:package-system #:register-system-packages
+   #:package-inferred-system #:register-system-packages
+   #:package-system ;; backward-compatibility during migration, to be removed in a further release.
 
    #:component-children          ; component accessors
    #:component-children-by-name
@@ -122,7 +123,7 @@
    #:missing-dependency-of-version
    #:circular-dependency        ; errors
    #:duplicate-names #:non-toplevel-system #:non-system-system
-   #:package-system-missing-package-error
+   #:package-inferred-system-missing-package-error
    #:operation-definition-warning #:operation-definition-error
 
    #:try-recompiling
diff --git a/package-system.lisp b/package-inferred-system.lisp
similarity index 68%
rename from package-system.lisp
rename to package-inferred-system.lisp
index 0133ed512847a567eee43741629d8b7e4eb1046d..553dfc7154ff2577e90cb0269fa883b3be6c5c85 100644
--- a/package-system.lisp
+++ b/package-inferred-system.lisp
@@ -1,31 +1,36 @@
 ;;;; -------------------------------------------------------------------------
 ;;;; Package systems in the style of quick-build or faslpath
 
-(uiop:define-package :asdf/package-system
-  (:recycle :asdf/package-system :asdf)
+(uiop:define-package :asdf/package-inferred-system
+  (:recycle :asdf/package-inferred-system :asdf/package-system :asdf)
   (:use :uiop/common-lisp :uiop
         :asdf/defsystem ;; Using the old name of :asdf/parse-defsystem for compatibility
         :asdf/upgrade :asdf/component :asdf/system :asdf/find-system :asdf/lisp-action)
   (:export
-   #:package-system #:register-system-packages #:sysdef-package-system-search
-   #:*defpackage-forms* #:*package-systems* #:package-system-missing-package-error))
-(in-package :asdf/package-system)
+   #:package-inferred-system #:sysdef-package-inferred-system-search
+   #:package-system ;; backward compatibility only. To be removed.
+   #:register-system-packages
+   #:*defpackage-forms* #:*package-inferred-systems* #:package-inferred-system-missing-package-error))
+(in-package :asdf/package-inferred-system)
 
 (with-upgradability ()
   (defparameter *defpackage-forms* '(cl:defpackage uiop:define-package))
 
-  (defun initial-package-systems-table ()
+  (defun initial-package-inferred-systems-table ()
     (let ((h (make-hash-table :test 'equal)))
       (dolist (p (list-all-packages))
         (dolist (n (package-names p))
           (setf (gethash n h) t)))
       h))
 
-  (defvar *package-systems* (initial-package-systems-table))
+  (defvar *package-inferred-systems* (initial-package-inferred-systems-table))
 
-  (defclass package-system (system)
+  (defclass package-inferred-system (system)
     ())
 
+  ;; For backward compatibility only. To be removed in an upcoming release:
+  (defclass package-system (package-inferred-system) ())
+
   (defun defpackage-form-p (form)
     (and (consp form)
          (member (car form) *defpackage-forms*)))
@@ -39,12 +44,12 @@
     (with-input-file (f file)
       (stream-defpackage-form f)))
 
-  (define-condition package-system-missing-package-error (system-definition-error)
+  (define-condition package-inferred-system-missing-package-error (system-definition-error)
     ((system :initarg :system :reader error-system)
      (pathname :initarg :pathname :reader error-pathname))
     (:report (lambda (c s)
                (format s (compatfmt "~@<No package form found while ~
-                                     trying to define package-system ~A from file ~A~>")
+                                     trying to define package-inferred-system ~A from file ~A~>")
                        (error-system c) (error-pathname c)))))
 
   (defun package-dependencies (defpackage-form)
@@ -73,23 +78,23 @@ the DEFPACKAGE-FORM uses it or imports a symbol from it."
     "Register SYSTEM as providing PACKAGES."
     (let ((name (or (eq system t) (coerce-name system))))
       (dolist (p (ensure-list packages))
-        (setf (gethash (package-designator-name p) *package-systems*) name))))
+        (setf (gethash (package-designator-name p) *package-inferred-systems*) name))))
 
   (defun package-name-system (package-name)
     "Return the name of the SYSTEM providing PACKAGE-NAME, if such exists,
 otherwise return a default system name computed from PACKAGE-NAME."
     (check-type package-name string)
-    (if-let ((system-name (gethash package-name *package-systems*)))
+    (if-let ((system-name (gethash package-name *package-inferred-systems*)))
       system-name
       (string-downcase package-name)))
 
-  (defun package-system-file-dependencies (file &optional system)
+  (defun package-inferred-system-file-dependencies (file &optional system)
     (if-let (defpackage-form (file-defpackage-form file))
       (remove t (mapcar 'package-name-system (package-dependencies defpackage-form)))
-      (error 'package-system-missing-package-error :system system :pathname file)))
+      (error 'package-inferred-system-missing-package-error :system system :pathname file)))
 
-  (defun same-package-system-p (system name directory subpath dependencies)
-    (and (eq (type-of system) 'package-system)
+  (defun same-package-inferred-system-p (system name directory subpath dependencies)
+    (and (eq (type-of system) 'package-inferred-system)
          (equal (component-name system) name)
          (pathname-equal directory (component-pathname system))
          (equal dependencies (component-sideway-dependencies system))
@@ -101,26 +106,29 @@ otherwise return a default system name computed from PACKAGE-NAME."
                        (and (slot-boundp child 'relative-pathname)
                             (equal (slot-value child 'relative-pathname) subpath))))))))
 
-  (defun sysdef-package-system-search (system)
+  (defun sysdef-package-inferred-system-search (system)
     (let ((primary (primary-system-name system)))
       (unless (equal primary system)
         (let ((top (find-system primary nil)))
-          (when (typep top 'package-system)
+          (when (typep top 'package-inferred-system)
             (if-let (dir (system-source-directory top))
               (let* ((sub (subseq system (1+ (length primary))))
                      (f (probe-file* (subpathname dir sub :type "lisp")
                                      :truename *resolve-symlinks*)))
                 (when (file-pathname-p f)
-                  (let ((dependencies (package-system-file-dependencies f system))
+                  (let ((dependencies (package-inferred-system-file-dependencies f system))
                         (previous (cdr (system-registered-p system))))
-                    (if (same-package-system-p previous system dir sub dependencies)
+                    (if (same-package-inferred-system-p previous system dir sub dependencies)
                         previous
                         (eval `(defsystem ,system
-                                 :class package-system
+                                 :class package-inferred-system
                                  :source-file nil
                                  :pathname ,dir
                                  :depends-on ,dependencies
                                  :components ((cl-source-file "lisp" :pathname ,sub)))))))))))))))
 
 (with-upgradability ()
-  (pushnew 'sysdef-package-system-search *system-definition-search-functions*))
+  (pushnew 'sysdef-package-inferred-system-search *system-definition-search-functions*)
+  (setf *system-definition-search-functions*
+        (remove (find-symbol* :sysdef-package-system-search :asdf/package-system nil)
+                *system-definition-search-functions*)))
diff --git a/test/dll-test.lisp b/test/dll-test.lisp
index 5bf1f8633352b631bede6462685f7d8524bb5052..590bfef332dd21e82f6dc4816072aba4e9281f37 100644
--- a/test/dll-test.lisp
+++ b/test/dll-test.lisp
@@ -1,4 +1,4 @@
-(defpackage :test-asdf/dll-test (:use)) ;; dummy, for package-system dependencies.
+(defpackage :test-asdf/dll-test (:use)) ;; dummy, for package-inferred-system dependencies.
 
 #+ecl
 (ffi:clines "
diff --git a/test/dll-user.lisp b/test/dll-user.lisp
index 7bcc0c079d1155f92e2633c028fbb7f81920bb18..c39c1997a503b932ee51e8da70b34c4a4c792047 100644
--- a/test/dll-user.lisp
+++ b/test/dll-user.lisp
@@ -1,4 +1,4 @@
-(defpackage :test-asdf/dll-user (:use)) ;; dummy, for package-system dependencies.
+(defpackage :test-asdf/dll-user (:use)) ;; dummy, for package-inferred-system dependencies.
 
 (in-package :test-package)
 
diff --git a/test/l-file.lisp b/test/l-file.lisp
index 2e39c99e2ada48245b536f5baf0cab6e9eed1ed0..4ef426d0f233951d51ba343ea93c8cd9b4ce5fbc 100644
--- a/test/l-file.lisp
+++ b/test/l-file.lisp
@@ -1,5 +1,5 @@
 (defpackage :l-file
-  (:use :asdf :uiop :cl) ;; asdf/package-system dependencies
+  (:use :asdf :uiop :cl) ;; asdf/package-inferred-system dependencies
   (:export #:cl-source-file.l))
 
 (in-package :l-file)
diff --git a/test/l-operation.lisp b/test/l-operation.lisp
index b9017563ea5458213494c2feac3646032b78ed72..1252980e560375da14230ec5d21f6e955f8014bb 100644
--- a/test/l-operation.lisp
+++ b/test/l-operation.lisp
@@ -1,5 +1,5 @@
 (cl:defpackage :l-operation
-  (:use :asdf :uiop :cl) ;; asdf/package-system dependencies
+  (:use :asdf :uiop :cl) ;; asdf/package-inferred-system dependencies
   (:export #:op #:*x*))
 
 (cl:in-package :l-operation)
diff --git a/test/monodll-1.lisp b/test/monodll-1.lisp
index 3de4d355bd7508f3165a8a9b9563d4bc7855329d..c49d48172840d944734a57344712a15a1542466f 100644
--- a/test/monodll-1.lisp
+++ b/test/monodll-1.lisp
@@ -1,4 +1,4 @@
-(defpackage :test-asdf/monodll-1 (:use)) ;; dummy, for package-system dependencies.
+(defpackage :test-asdf/monodll-1 (:use)) ;; dummy, for package-inferred-system dependencies.
 
 #+ecl
 (ffi:clines "
diff --git a/test/monodll-user.lisp b/test/monodll-user.lisp
index 92b3055001edd5513a4c96d75348eeb9f951cc9a..022bcbe64e37c6d14a716a1e342d7494f461a23a 100644
--- a/test/monodll-user.lisp
+++ b/test/monodll-user.lisp
@@ -1,4 +1,4 @@
-(defpackage :test-asdf/monodll-user (:use)) ;; dummy, for package-system dependencies.
+(defpackage :test-asdf/monodll-user (:use)) ;; dummy, for package-inferred-system dependencies.
 
 (in-package :test-package)
 (ffi:def-function "always_42" () :returning :int)
diff --git a/test/monodll.lisp b/test/monodll.lisp
index 68b94f5dff8f76297686b84d4377111f8ef6b355..0859b6757969c4b73629f7a870565c68adec47f0 100644
--- a/test/monodll.lisp
+++ b/test/monodll.lisp
@@ -1,4 +1,4 @@
-(defpackage :test-asdf/monodll (:use :test-asdf/monodll-1)) ;; dummy, for package-system dependencies.
+(defpackage :test-asdf/monodll (:use :test-asdf/monodll-1)) ;; dummy, for package-inferred-system dependencies.
 
 #+ecl
 (ffi:clines "
diff --git a/test/package-inferred-system-test.script b/test/package-inferred-system-test.script
new file mode 100644
index 0000000000000000000000000000000000000000..a11c3202dd34550060784111f43bbadf59e3d424
--- /dev/null
+++ b/test/package-inferred-system-test.script
@@ -0,0 +1,8 @@
+(register-directory (subpathname *test-directory* "package-inferred-system-test/"))
+(load-system :package-inferred-system-test/a/x)
+(load-system :package-inferred-system-test/d)
+
+(signals package-inferred-system-missing-package-error (load-system :package-inferred-system-test/e))
+
+;; No such file.
+(signals missing-component (load-system :package-inferred-system-test/f))
diff --git a/test/package-inferred-system-test/a.lisp b/test/package-inferred-system-test/a.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..f87e709c9186c10b3fada3577b5075accad60288
--- /dev/null
+++ b/test/package-inferred-system-test/a.lisp
@@ -0,0 +1 @@
+(defpackage package-inferred-system-test/a (:use cl))
diff --git a/test/package-inferred-system-test/a/x.lisp b/test/package-inferred-system-test/a/x.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..851beb7b92eebd939c4eafb0681e2b8a5bfd110d
--- /dev/null
+++ b/test/package-inferred-system-test/a/x.lisp
@@ -0,0 +1 @@
+(defpackage package-inferred-system-test/a/x (:use common-lisp package-inferred-system-test/c))
diff --git a/test/package-inferred-system-test/b.lisp b/test/package-inferred-system-test/b.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..f7bd83eb97332106580ac7a99b91c8a800386c53
--- /dev/null
+++ b/test/package-inferred-system-test/b.lisp
@@ -0,0 +1 @@
+(defpackage package-inferred-system-test/b (:use cl package-inferred-system-test/a))
diff --git a/test/package-inferred-system-test/c.lisp b/test/package-inferred-system-test/c.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..38830003680a7b9006be1db6a2b6d4b177a5d9dc
--- /dev/null
+++ b/test/package-inferred-system-test/c.lisp
@@ -0,0 +1 @@
+(defpackage package-inferred-system-test/c (:use cl package-inferred-system-test/a))
diff --git a/test/package-inferred-system-test/d.lisp b/test/package-inferred-system-test/d.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..b595f4ad07e53c0b14ec958257b8b2afcac7b748
--- /dev/null
+++ b/test/package-inferred-system-test/d.lisp
@@ -0,0 +1 @@
+(defpackage package-inferred-system-test/d (:use cl package-inferred-system-test/b package-inferred-system-test/c))
diff --git a/test/package-system-test/e.lisp b/test/package-inferred-system-test/e.lisp
similarity index 64%
rename from test/package-system-test/e.lisp
rename to test/package-inferred-system-test/e.lisp
index 98bd74664c250727a589e4958ceca27c3798af7e..2574d5c92223661f542893e167ff506b72703095 100644
--- a/test/package-system-test/e.lisp
+++ b/test/package-inferred-system-test/e.lisp
@@ -1,3 +1,3 @@
-;; This file is missing a defpackage form, and loading it as a package-system should trigger an error.
+;; This file is missing a defpackage form, and loading it as a package-inferred-system should trigger an error.
 
 (in-package :asdf-test)
diff --git a/test/package-inferred-system-test/package-inferred-system-test.asd b/test/package-inferred-system-test/package-inferred-system-test.asd
new file mode 100644
index 0000000000000000000000000000000000000000..bf788a471480cd9eee4591fd557a95e3fb99d39c
--- /dev/null
+++ b/test/package-inferred-system-test/package-inferred-system-test.asd
@@ -0,0 +1,6 @@
+(in-package :asdf)
+
+(defsystem package-inferred-system-test
+  :class package-inferred-system
+  :defsystem-depends-on
+  #.(unless (find-class 'package-inferred-system nil) '(:asdf-package-inferred-system)))
diff --git a/test/package-system-test.script b/test/package-system-test.script
deleted file mode 100644
index 0b2ebbd03ca0a6af6e29508a79e31be9d3d56891..0000000000000000000000000000000000000000
--- a/test/package-system-test.script
+++ /dev/null
@@ -1,8 +0,0 @@
-(register-directory (subpathname *test-directory* "package-system-test/"))
-(load-system :package-system-test/a/x)
-(load-system :package-system-test/d)
-
-(signals package-system-missing-package-error (load-system :package-system-test/e))
-
-;; No such file.
-(signals missing-component (load-system :package-system-test/f))
diff --git a/test/package-system-test/a.lisp b/test/package-system-test/a.lisp
deleted file mode 100644
index cf79f4dcc3f9a83cdcbc39d5dc54441b7da67b0f..0000000000000000000000000000000000000000
--- a/test/package-system-test/a.lisp
+++ /dev/null
@@ -1 +0,0 @@
-(defpackage package-system-test/a (:use cl))
diff --git a/test/package-system-test/a/x.lisp b/test/package-system-test/a/x.lisp
deleted file mode 100644
index e4e63c6c28d799ce537d44c8262cbae0b8b5c83b..0000000000000000000000000000000000000000
--- a/test/package-system-test/a/x.lisp
+++ /dev/null
@@ -1 +0,0 @@
-(defpackage package-system-test/a/x (:use common-lisp package-system-test/c))
diff --git a/test/package-system-test/b.lisp b/test/package-system-test/b.lisp
deleted file mode 100644
index 583caf014d676aef94da5a0594efaa28b024ff23..0000000000000000000000000000000000000000
--- a/test/package-system-test/b.lisp
+++ /dev/null
@@ -1 +0,0 @@
-(defpackage package-system-test/b (:use cl package-system-test/a))
diff --git a/test/package-system-test/c.lisp b/test/package-system-test/c.lisp
deleted file mode 100644
index 80734f3dc730cfd46317aa6abaae5a7a6854500c..0000000000000000000000000000000000000000
--- a/test/package-system-test/c.lisp
+++ /dev/null
@@ -1 +0,0 @@
-(defpackage package-system-test/c (:use cl package-system-test/a))
diff --git a/test/package-system-test/d.lisp b/test/package-system-test/d.lisp
deleted file mode 100644
index b0f92a6eaaad936c26193213997dcc6760dab936..0000000000000000000000000000000000000000
--- a/test/package-system-test/d.lisp
+++ /dev/null
@@ -1 +0,0 @@
-(defpackage package-system-test/d (:use cl package-system-test/b package-system-test/c))
diff --git a/test/package-system-test/package-system-test.asd b/test/package-system-test/package-system-test.asd
deleted file mode 100644
index cf158fdd64b238ed3000b64b4cdc54935a04a55b..0000000000000000000000000000000000000000
--- a/test/package-system-test/package-system-test.asd
+++ /dev/null
@@ -1,6 +0,0 @@
-(in-package :asdf)
-
-(defsystem package-system-test
-  :class package-system
-  :defsystem-depends-on
-  #.(unless (find-class 'package-system nil) '(:asdf-package-system)))
diff --git a/test/run-tests.sh b/test/run-tests.sh
index 235a11c0e2cb097225b1db38c8739c0d0e63d440..ca0855ea1e01e22c9c775e17b8f48bc080e295e9 100755
--- a/test/run-tests.sh
+++ b/test/run-tests.sh
@@ -339,7 +339,7 @@ upgrade_tags () {
     #
     # The 3.1 series provides the 3.1 feature, meaning users can rely on
     # all the stabilization work done in 3.0 so far, plus extra developments
-    # in UIOP, package-system, and more robustification.
+    # in UIOP, package-inferred-system, and more robustification.
     #
     # We return the above designated versions in order of decreasing relevance,
     # which pretty much means REQUIRE and most recent first.
@@ -411,8 +411,8 @@ valid_upgrade_test_p () {
         ecl*:1.*|ecl*:2.0[01]*|ecl*:2.20:*) : ;;
         # GCL 2.7.0 from late November 2013 is required, with ASDF 3.1.1
         gcl:REQUIRE:*|gcl:1.*|gcl:2.*|gcl:3.0*) : ;;
-        # MKCL is only supported starting with 2.24, so skip earlier versions
-        mkcl:1.*|mkcl:2.0[01]*|mkcl:2.2[0-3]:*) : ;;
+        # MKCL is only supported starting with specific versions 2.24, 2.26.x, 3.0.3.0.x, so skip.
+        mkcl:[12]*|mkcl:3.0*) : ;;
         # XCL support starts with ASDF 2.014.2
         # — It also dies during upgrade trying to show the backtrace.
         xcl:1.*|xcl:2.00*|xcl:2.01[0-4]:*|xcl:*) : ;;
diff --git a/test/test-asdf.asd b/test/test-asdf.asd
index 027002bae49a97eeb485252df0a8b943449fceb4..1541f13a0b53fc17372d62d8a1e39a99727ee318 100644
--- a/test/test-asdf.asd
+++ b/test/test-asdf.asd
@@ -2,7 +2,7 @@
   (:use :cl :asdf))
 (in-package :test-asdf-system)
 
-(defsystem :test-asdf :class package-system)
+(defsystem :test-asdf :class package-inferred-system)
 
 (defsystem :test-asdf/all
   :version "0"
diff --git a/upgrade.lisp b/upgrade.lisp
index 8950cc4d355cf7d104c45dae3ecc0e0f6da2e251..ee457bd968ed7f140ac85a9a3ddcf779a3c26a6a 100644
--- a/upgrade.lisp
+++ b/upgrade.lisp
@@ -67,7 +67,7 @@ previously-loaded version of ASDF."
          ;; "3.4.5.67" would be a development version in the official branch, on top 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.1.0.113")
+         (asdf-version "3.1.0.116")
          (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 adf2e9fac639f34ba5b7fa6f59edac7852e36923..70c6939f380d374208b7dd8b1431ebda68becd44 100644
--- a/version.lisp-expr
+++ b/version.lisp-expr
@@ -1,2 +1,2 @@
-"3.1.0.113"
+"3.1.0.116"