diff --git a/GNUmakefile b/GNUmakefile
index 2ea0973212131d2f61bd56ad0230754981c21641..d2d4117fbf552ad84aa50e8078abeacd12d1df94 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -38,7 +38,7 @@ website-copy: FORCE
 	bin/rsync-cp.sh tmp/asdf.lisp $(webhome_private)
 
 clean_dirs = $(sourceDirectory)
-clean_extensions = fasl dfsl cfsl fasl fas lib dx32fsl lx64fsl lx32fsl o
+clean_extensions = fasl dfsl cfsl fasl fas lib dx32fsl lx64fsl lx32fsl o bak
 
 clean: FORCE
 	@for dir in $(clean_dirs); do \
diff --git a/asdf.lisp b/asdf.lisp
index 8dc233770ed7dd713c7ba2c1eda43759a8a1de0c..4d51ef2add3af004a34b984d8802e3f12aea0cfc 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -60,7 +60,7 @@
 (eval-when (:load-toplevel :compile-toplevel :execute)
   (let* ((asdf-version
           ;; the 1+ hair is to ensure that we don't do an inadvertent find and replace
-          (subseq "VERSION:1.676" (1+ (length "VERSION"))))
+          (subseq "VERSION:1.677" (1+ (length "VERSION"))))
          #+allegro (excl::*autoload-package-name-alist* nil)
          (existing-asdf (find-package :asdf))
          (versym '#:*asdf-version*)
@@ -677,7 +677,7 @@ actually-existing directory."
   "Resolve as much of a pathname as possible"
   (block nil
     (when (typep p 'logical-pathname) (return p))
-    (let* ((p (merge-pathnames p))
+    (let* ((p (merge-pathnames* p))
            (directory (pathname-directory p)))
       (when (typep p 'logical-pathname) (return p))
       (ignore-errors (return (truename p)))
@@ -1794,7 +1794,7 @@ details."
             (if *resolve-symlinks*
                 (resolve-symlinks (or *load-truename* *compile-file-truename*))
                 *load-pathname*)))))
-    (or (and pathname-supplied-p (merge-pathnames pathname file-pathname))
+    (or (and pathname-supplied-p (merge-pathnames* pathname file-pathname))
         file-pathname
         (current-directory))))