diff --git a/component.lisp b/component.lisp
index 2dec0edfb0ec912ad4e6e88e0462da811364988e..fa3f72fb2a7bd3f0a4be3a38888af0aa757e6172 100644
--- a/component.lisp
+++ b/component.lisp
@@ -230,8 +230,8 @@ children.")))
 
   (defmethod component-relative-pathname ((component component))
     ;; SOURCE-FILE-TYPE below is strictly for backward-compatibility with ASDF1.
-    ;; We ought to be able to extract this from the component alone with COMPONENT-TYPE.
-    ;; TODO: track who uses it, and have them not use it anymore;
+    ;; We ought to be able to extract this from the component alone with FILE-TYPE.
+    ;; TODO: track who uses it in Quicklisp, and have them not use it anymore;
     ;; maybe issue a WARNING (then eventually CERROR) if the two methods diverge?
     (parse-unix-namestring
      (or (and (slot-boundp component 'relative-pathname)
diff --git a/contrib/detect-multiply-used-files.lisp b/contrib/detect-multiply-used-files.lisp
index c25424d559004840e1063644293fd4e821da2da6..8e5bf714d8f211a491ef19666d0a87a2836ed323 100644
--- a/contrib/detect-multiply-used-files.lisp
+++ b/contrib/detect-multiply-used-files.lisp
@@ -1,4 +1,5 @@
 (uiop:define-package :detect-multiply-used-files
+  (:nicknames :asdf/contrib/detect-multiply-used-files)
   (:use :asdf :uiop :common-lisp)
   (:export #:find-fishy-components #:register-component-files #:*file-components*))
 
diff --git a/doc/Makefile b/doc/Makefile
index 61eb62134a1b7fdb673a3cdf5951be4f333d1a5f..0ed231abf35870c30085c4b34ab7f980d09be979 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -32,6 +32,7 @@ asdf.pdf: asdf.texinfo version.texinfo
 
 website: all
 	rsync -lt --no-g ${webfiles} ${website}
+	rsync --recursive --no-g --delete asdf ${website}
 	rsync -lt --no-g ../debian/changelog ${website}/changelog
 
 .PHONY: clean intermediate-clean manual-html
diff --git a/test/test-utilities.script b/test/test-utilities.script
index 80b3aea6de6b01fc52419ab9f496b6b067bbc4c3..f98d47f38fbc8ea9f5ae3a5190452551ff57185c 100644
--- a/test/test-utilities.script
+++ b/test/test-utilities.script
@@ -24,8 +24,8 @@
   (setf dir (normalize-pathname-directory-component dir))
   (loop
    :with head = (progn
-		  (unless (and (consp dir) (cdr dir)) (return dir))
-		  (subseq dir 0 1))
+                  (unless (and (consp dir) (cdr dir)) (return dir))
+                  (subseq dir 0 1))
    :with tail = (rest dir)
    :for (next rest) :on tail :do
    (unless (equal next ".")
@@ -63,10 +63,12 @@
                    (assert-pathname-equal true dir)
                    (setf true dir)))
              (assert-pathname-equal true (truename (ensure-directory-pathname file)))
-             (assert-pathname-equal true (nest #+(and clisp windows) (ensure-directory-pathname)
-					       (truename* file))
-             (assert-pathname-equal true (nest #+(or allegro (and clisp windows)) (ensure-directory-pathname)
-					       (probe-file* file :truename t)))
+             (assert-pathname-equal true (nest #+(and clisp os-windows) (ensure-directory-pathname)
+                                               (truename* file)))
+             (assert-pathname-equal true
+                                    (let ((path (probe-file* file :truename t)))
+                                      #+(or allegro (and clisp os-windows)) (ensure-directory-pathname path)
+                                      #-(or allegro (and clisp os-windows)) path))
              (assert-pathname-equal true (if-let (x (probe-file* file))
                                            (ensure-absolute-pathname (ensure-directory-pathname x) 'get-pathname-defaults))))
            (check-directory-doesnt-exist (file)
@@ -99,7 +101,7 @@
       (check-true-dpd-test))
 
     #-(or abcl genera xcl ;; on these platforms, chdir changes D-P-D so these tests are not meaningful
-	  (and sbcl os-windows)) ;; SBCL on Windows really hates a relative D-P-D.
+          (and sbcl os-windows)) ;; SBCL on Windows really hates a relative D-P-D.
     (progn
       ;; SBCL hates to get (truename #p"") when D-P-D is itself #p"". See https://bugs.launchpad.net/sbcl/+bug/1472414
       (DBG "4"
@@ -113,7 +115,7 @@
 
       ;; On implementations where chdir doesn't side-effect D-P-D, we can have D-P-D be relative to GETCWD...
       ;; except on allegro, that hates this trick.
-      (with-expected-failure (#+(or allegro gcl) t)
+      (with-expected-failure (#+(or allegro gcl (and clisp os-windows)) t)
         (unless (absolute-pathname-p *default-pathname-defaults*)
           (DBG "6"
                (chdir asdf-directory)
diff --git a/uiop/filesystem.lisp b/uiop/filesystem.lisp
index f8cbebf595bfa86ede96003be4f5fb800d725ff3..d34a09c83cec5113361503432f27ed158b3b3796 100644
--- a/uiop/filesystem.lisp
+++ b/uiop/filesystem.lisp
@@ -69,6 +69,8 @@ a CL pathname satisfying all the specified constraints as per ENSURE-PATHNAME"
       (when (stringp p) (setf p (with-pathname-defaults () (parse-namestring p))))
       (values
        (or (ignore-errors (truename p))
+           ;; this is here because trying to find the truename of a directory pathname WITHOUT supplying
+           ;; a trailing directory separator, causes an error on some lisps.
            #+(or clisp gcl) (if-let (d (ensure-directory-pathname p)) (ignore-errors (truename d)))))))
 
   (defun safe-file-write-date (pathname)
diff --git a/uiop/pathname.lisp b/uiop/pathname.lisp
index d8f7ce5e5c824c28ef81369c7dff115a2b1f1321..9f511abbdd1b9741bd0f867711a95a2d975c8646 100644
--- a/uiop/pathname.lisp
+++ b/uiop/pathname.lisp
@@ -207,7 +207,9 @@ when merging, making or parsing pathnames")
 where leaving the defaults NIL or unspecified means a (NIL-PATHNAME), except
 on ABCL, Genera and XCL, where it remains unchanged for it doubles as current-directory."
     `(let ((*default-pathname-defaults*
-             ,(or defaults #-(or abcl genera xcl) '*nil-pathname* #+(or abcl genera) '*default-pathname-defaults*)))
+             ,(or defaults
+                  #-(or abcl genera xcl) '*nil-pathname*
+                  #+(or abcl genera xcl) '*default-pathname-defaults*)))
        ,@body)))