diff --git a/.gitignore b/.gitignore
index a4a40c84a619cecc0ba09f5692e396efb7478ada..d0394fb33185850bf3f824fc9a8c15493cb64ae8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,17 +5,9 @@ common-lisp.net
 init-lisp.lisp
 website/changelog.xml
 
-# Test stuff
-test/results/
-test/tmp/
-test/conf.d/
-test/dir1/
-test/dir2/
-
 # We build these at various stages in the make process
 LICENSE
 website/output/
-test-results/
 tmp/
 lift-local.config
 *.dribble
diff --git a/asdf.lisp b/asdf.lisp
index 7211b5f35831b36143639a6df856aee13b2a3351..fd994248bb1f13e817c3b2ab5c7936eea975136b 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -121,7 +121,8 @@
                p)))
     (let ((redefined-functions
            '(#:perform #:explain #:output-files #:operation-done-p
-             #:perform-with-restarts #:component-relative-pathname)))
+             #:perform-with-restarts #:component-relative-pathname
+             #:system-source-file)))
       (ensure-package
        ':asdf-utilities
        :nicknames '(#:asdf-extensions)
@@ -262,7 +263,7 @@
   ;; This parameter isn't actually user-visible
   ;; -- please use the exported function ASDF:ASDF-VERSION below.
   ;; the 1+ hair is to ensure that we don't do an inadvertent find and replace
-  (subseq "VERSION:1.658" (1+ (length "VERSION"))))
+  (subseq "VERSION:1.659" (1+ (length "VERSION"))))
 
 (defun asdf-version ()
   "Exported interface to the version of ASDF currently installed. A string.
@@ -587,10 +588,10 @@ ways that the filename components can be missing are for it to be `nil`,
 Note that this does _not_ check to see that `pathname` points to an
 actually-existing directory."
   (flet ((check-one (x)
-           (not (null (member x '(nil :unspecific "")
-                              :test 'equal)))))
+           (member x '(nil :unspecific "") :test 'equal)))
     (and (check-one (pathname-name pathname))
-         (check-one (pathname-type pathname)))))
+         (check-one (pathname-type pathname))
+         t)))
 
 (defun ensure-directory-pathname (pathspec)
   "Converts the non-wild pathname designator PATHSPEC to directory form."
@@ -2048,7 +2049,9 @@ output to `*verbose-out*`.  Returns the shell's exit code."
 ;;;; ---------------------------------------------------------------------------
 ;;;; system-relative-pathname
 
-(defmethod system-source-file ((system-name t))
+(defmethod system-source-file ((system-name string))
+  (system-source-file (find-system system-name)))
+(defmethod system-source-file ((system-name symbol))
   (system-source-file (find-system system-name)))
 
 (defun system-source-directory (system-name)
diff --git a/test/asdf-pathname-test.script b/test/asdf-pathname-test.script
index 6ee7af5a66cec5fd6ba58ec37dc3bc6f7c63057d..460ce9327c4e5c79374e4607df4ed535a2851f99 100644
--- a/test/asdf-pathname-test.script
+++ b/test/asdf-pathname-test.script
@@ -272,17 +272,6 @@
       (setf (logical-pathname-translations "ASDFTEST") nil))
     (remhash "test-system" asdf::*defined-systems*)))
 
-#+clisp
-(trace
- make-pathname
- make-instance
- asdf::component-pathname
- asdf::component-relative-pathname
- asdf::merge-pathnames*
- asdf::merge-component-name-type
- asdf::component-name-to-pathname-components
- make-pathname)
-
 (quit-on-error
  (asdf:initialize-source-registry)
  (format t "source registry: ~S~%" (asdf::source-registry))
diff --git a/test/run-tests.sh b/test/run-tests.sh
index 001f4aa3dda20a2c2ef622363e688629f5cae027..3ec637bf07f4a9e1543a63625747641dfcce8267 100755
--- a/test/run-tests.sh
+++ b/test/run-tests.sh
@@ -188,9 +188,9 @@ if [ -z "$command" ] ; then
     echo "Error: cannot find or do not know how to run Lisp named $lisp"
 else
     create_config
-    mkdir -p results
+    mkdir -p ../tmp/results
     thedate=`date "+%Y-%m-%d"`
     do_tests "$command" "$eval" 2>&1 | \
-	tee "results/${lisp}.text" "results/${lisp}-${thedate}.save"
+	tee "../tmp/results/${lisp}.text" "../tmp/results/${lisp}-${thedate}.save"
     clean_up
 fi