diff --git a/TODO b/TODO
index 56e0638832067c9b96aae84c2cd253bdfe994cf9..fe4b80c05da02fcf4ce3b1690dd5df48cc8a3a47 100644
--- a/TODO
+++ b/TODO
@@ -19,8 +19,6 @@
   concatenate all files for the system, then load the result (load-concatenated-source-op),
   concatenate all files for the system, then link them and load the result (load-compiled-concatenated-op),
   concatenate all files for the system *and* its dependencies, link and load (monolithic-load-compiled-concatenated-op).
-* Stop the dynamic ASDFn temporary package madness.
-** Just have a single ASDF-USER that :use's ASDF and ASDF-UTILS
 * operation cleanup?
 ** Kill backward-compat functions after all clients have moved on.
 ** Kill original-initargs -- BEWARE, it currently has clients!
diff --git a/asdf.asd b/asdf.asd
index ac9d674155e4b8f8bd83b4e701f4b0c36d805963..29665831a383986aeb391c7fb11d09503fe470b1 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -62,7 +62,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.26.158" ;; to be automatically updated by make bump-version
+  :version "2.26.159" ;; 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/debian/changelog b/debian/changelog
index 2cdb6ff2f79c0234ff29c53d278427c9ad3e0fb9..54214ff46a705ceb75648ff77f1f91e7b3d9c774 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,9 @@
-cl-asdf (2:3.0-1) unstable; urgency=low
+cl-asdf (2:2.27-1) unstable; urgency=low
+
+  ASDF 2.27 is actually an almost complete rewrite of ASDF, and
+  should be considered a pre-release for a new ASDF 3.
+  It nevertheless maintains backward compatibility with the current practice,
+  and is tested against the software in Quicklisp.
 
   * ASDF-BUNDLE was merged into ASDF.
     This notably means fewer headaches for users of ECL;
@@ -7,16 +12,16 @@ cl-asdf (2:3.0-1) unstable; urgency=low
     After release, I plan to offer a patch so SBCL use that for its contrib's.
     All remnants of asdf-bundle's predecessor asdf-ecl were removed.
 
-  * *decades-old* bugs of notable significance were fixed:
+  * DECADES-OLD bugs of notable significance were fixed:
     (a) changes in dependencies now trigger a rebuild across systems, and
     https://bugs.launchpad.net/asdf/+bug/479522
     (b) timestamps are now correctly propagated (they weren't at all!)
     https://bugs.launchpad.net/asdf/+bug/1087609
+    Fixing them required a complete rewrite of ASDF's dependency tracking.
     In olden days, some have argued for not rebuilding systems that :depend-on
     a modified one as a "feature". It really isn't. On the other hand,
     it is now possible to explicitly prevent a system from being rebuilt, using
     an actual feature, :force-not, which was released in 2.21 in April 2012.
-    Someday I will write about those bugs.
 
   * PREPARE-OP was introduced to fix a conceptual bug in the ASDF object model.
     It corresponds to "loading the dependencies of a component and its parents"
@@ -68,10 +73,10 @@ cl-asdf (2:3.0-1) unstable; urgency=low
     which belied the object model and defeated other features.
     Unhappily, this breaks backwards compatibility for the few who used it,
     namely sb-grovel, nibbles and ironclad.
-    A minimal compatibility layer allows ASDF 2.27 or later to load
+    A minimal compatibility layer allows ASDF 3 or later to load
     the SB-GROVEL of old versions of SBCL, but it won't suffice to load
     an old version of nibbles or ironclad; please upgrade them
-    a recent version that was updated to support ASDF 2.27.
+    a recent version that was updated to support ASDF 3.
 
   * CONCATENATE-SOURCE-OP is a new operation that builds a single Lisp file
     from all the source files in a system,
@@ -171,8 +176,7 @@ cl-asdf (2:3.0-1) unstable; urgency=low
     Many internal accessors were renamed, after checking on Quicklisp
     that no one was using them.
 
-  * Portability updates were done for
-    ABCL, CLISP, Clozure CL, CMUCL, ECL, LispWorks Personal Edition, MKCL, XCL.
+  * Portability updates were done for each and every implementation.
     Working support for GCL 2.6 was restored, with notable limitations
     including lack of support for output-translations or logical-pathnames.
 
@@ -182,6 +186,10 @@ cl-asdf (2:3.0-1) unstable; urgency=low
     or if your build system uses symlinks to content-addressed storage
     in which case TRUENAME just does the wrong thing.
 
+  * PERFORMANCE of ASDF3 is somewhat slower (about 70%) than ASDF2
+    when *RESOLVE-SYMLINKS* is true, and slightly faster when it is false;
+    but underneath ASDF3 does much more work than ASDF2.
+
   * VERSION strings can now be specified as having to be fetched
     from a file using a (:read-file-form <path>) specification,
     that can use an optional :at keyword argument to specify
@@ -204,12 +212,23 @@ cl-asdf (2:3.0-1) unstable; urgency=low
     hot upgrade of software where some packages have changed.
     It also provides new forms :MIX and :REEXPORT which can be quite practical.
 
-  * ASDF2.27 was added to the *features* so you can detect the presence of
-    this massively updated ASDF and its new features with #+asdf2.27.
+  * ASDF-USER is now the shared package in which all .asd files are loaded.
+    There will be no more temporary packages created
+    around the loading of each .asd file. This shouldn't change much for users:
+    you should probably still define your own private package whenever you
+    define new classes, functions, or variables, to avoid namespace conflict;
+    except now, when you don't, you can still access your defined symbols
+    after the file is loaded.
+    ASDF is not the right place to fix Common Lisp namespace issues, and
+    these temporary packages were never a successful fix anyway.
+
+  * ASDF3 was added to the *features* so you can detect the presence of
+    this massively updated ASDF and its new features with #+asdf3.
     This is *not* ASDF3, for we painfully maintained backwards compatibility,
     though it may have been temporarily broken during development.
 
-  * Documentation received some updates.
+  * Documentation received some updates, though by no means comparable
+    to the complete rewrite of the code base.
 
   * Tests were updated, notably including support for bundles, encodings,
     run-program, and more. They were successfully run on
@@ -228,7 +247,7 @@ cl-asdf (2:3.0-1) unstable; urgency=low
     minus a few misdesigned things from ASDF1 that you ought not
     to have been using, and for which there are non-broken replacements.
     ASDF-UTILS was distributed separately from ASDF; ASDF-DRIVER is available
-    both as part of ASDF 2.27 and later and separately.
+    both as part of ASDF 3 and later and separately.
 
   * POIU was updated. This extension is still distributed separately from ASDF.
     It is now much simplified and made correct by construction by
diff --git a/header.lisp b/header.lisp
index 2c77bc27c68d3fa3190898c72a22a8639ccee704..725ef3a8fc7a0be743bff9c62bbf0ddfc697ba16 100644
--- a/header.lisp
+++ b/header.lisp
@@ -1,5 +1,5 @@
 ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
-;;; This is ASDF 2.26.158: Another System Definition Facility.
+;;; This is ASDF 2.26.159: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
diff --git a/pathname.lisp b/pathname.lisp
index b1f2a25ae320a1658f8caa053b97e6b51e4f7b81..d5287d420eea0b3eed2519fa76f0753ed8f0023c 100644
--- a/pathname.lisp
+++ b/pathname.lisp
@@ -638,16 +638,16 @@ or the original (parsed) pathname if it is false (the default)."
                             (truename* (subpathname
                                         (ensure-directory-pathname p) ".")))))))
                 #+clisp
-                (let ((fs (find-symbol* '#:file-stat :posix nil))
-                      (pp (find-symbol* '#:probe-pathname :ext nil))
-                      (resolve (if pp
-                                   `(ignore-errors (,pp p))
-                                   '(or (truename* p)
-                                     (truename* (ensure-directory-pathname p))))))
+                (let* ((fs (find-symbol* '#:file-stat :posix nil))
+                       (pp (find-symbol* '#:probe-pathname :ext nil))
+                       (resolve (if pp
+                                    `(ignore-errors (,pp p))
+                                    '(or (truename* p)
+                                      (truename* (ignore-errors (ensure-directory-pathname p)))))))
                   (if fs
                       `(if truename
                            ,resolve
-                           (and (,fs p) p))
+                           (and (ignore-errors (,fs p)) p))
                       (probe resolve)))))
          (file-error () nil))))))
 
diff --git a/upgrade.lisp b/upgrade.lisp
index 681ceb18469c0ba279fd77624de08ebc325a2cc7..c6bb0debe62f35fedf9e799dc97781c04a7deab6 100644
--- a/upgrade.lisp
+++ b/upgrade.lisp
@@ -35,7 +35,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.158")
+         (asdf-version "2.26.159")
          (existing-asdf (find-class (find-symbol* :component :asdf nil) nil))
          (existing-version *asdf-version*)
          (already-there (equal asdf-version existing-version))
diff --git a/version.lisp-expr b/version.lisp-expr
index 50f42de2c504e68f58ce4e38c1dbfd8dc6f45185..4b661b43dc4c288345059956fe3f69e76babe290 100644
--- a/version.lisp-expr
+++ b/version.lisp-expr
@@ -1 +1 @@
-"2.26.158"
+"2.26.159"