diff --git a/.gitignore b/.gitignore
index 8fb790b7a49fe75a46c1a9e1fa39f967c5d7c5a1..04e72a06bc7773ef83c46d4a17906e18192b9e79 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,6 +38,7 @@ tmp/
 *.x86f
 *.bak
 *.data
+*.ufasl
 test/try-reloading-dependency.asd
 test/fileMissing.lisp
 
diff --git a/asdf.asd b/asdf.asd
index 6a1fd75db0de1835b8c72e18487cdd2fc4e59109..43cb70ac764f5c38a56b793e2aaf6662f35e0b18 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -12,7 +12,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.014.16" ;; to be automatically updated by bin/bump-revision
+  :version "2.014.17" ;; to be automatically updated by bin/bump-revision
   :depends-on ()
   :components
   ((:file "asdf")
diff --git a/asdf.lisp b/asdf.lisp
index 26e444c1d151430c3aade858d1deebb018af489b..138bd3ab3e47ad50382ffffeed7c0bb70bf246e5 100755
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -1,5 +1,5 @@
 ;;; -*- mode: common-lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
-;;; This is ASDF 2.014.16: Another System Definition Facility.
+;;; This is ASDF 2.014.17: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
@@ -75,27 +75,27 @@
 ;;;; See https://bugs.launchpad.net/asdf/+bug/485687
 ;;;; See more near the end of the file.
 
-;;; Strip out formatting that is not supported on Genera.
-(defmacro compatfmt (format)
-  #-genera format
-  #+genera
-  (loop :for (unsupported . replacement) :in
-    '(("~@<" . "")
-      ("; ~@;" . "; ")
-      ("~3i~_" . "")
-      ("~@:>" . "")
-      ("~:>" . "")) :do
-    (loop :for found = (search unsupported format) :while found :do
-      (setf format
-            (concatenate 'simple-string
-                         (subseq format 0 found) replacement
-                         (subseq format (+ found (length unsupported)))))))
-  format)
-
 (eval-when (:load-toplevel :compile-toplevel :execute)
   (defvar *asdf-version* nil)
   (defvar *upgraded-p* nil)
   (defvar *asdf-verbose* nil) ; was t from 2.000 to 2.014.12.
+  ;; Strip out formatting that is not supported on Genera.
+  ;; Has to be inside the eval-when to make Lispworks happy (!)
+  (defmacro compatfmt (format)
+    #-genera format
+    #+genera
+    (loop :for (unsupported . replacement) :in
+      '(("~@<" . "")
+        ("; ~@;" . "; ")
+        ("~3i~_" . "")
+        ("~@:>" . "")
+        ("~:>" . "")) :do
+      (loop :for found = (search unsupported format) :while found :do
+        (setf format
+              (concatenate 'simple-string
+                           (subseq format 0 found) replacement
+                           (subseq format (+ found (length unsupported)))))))
+    format)
   (let* (;; For bug reporting sanity, please always bump this version when you modify this file.
          ;; Please also modify asdf.asd to reflect this change. The script bin/bump-version
          ;; can help you do these changes in synch (look at the source for documentation).
@@ -104,7 +104,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.014.16")
+         (asdf-version "2.014.17")
          (existing-asdf (fboundp 'find-system))
          (existing-version *asdf-version*)
          (already-there (equal asdf-version existing-version)))
diff --git a/test/test-multiple.asd b/test/test-multiple.asd
new file mode 100644
index 0000000000000000000000000000000000000000..084e45a9216eddb1784fcb558bfa1d9772fb8cd7
--- /dev/null
+++ b/test/test-multiple.asd
@@ -0,0 +1,12 @@
+;;; -*- Lisp -*-
+(asdf:defsystem test-multiple
+  :components
+  ((:file "file1")))
+
+(asdf:defsystem test-multiple-too
+  :components
+  ((:file "file1")))
+
+(asdf:defsystem test-multiple-free
+  :components
+  ((:file "file1")))
diff --git a/test/test-multiple.script b/test/test-multiple.script
new file mode 100644
index 0000000000000000000000000000000000000000..b1d2efd99ea847147c373c465f9c730d5686ea08
--- /dev/null
+++ b/test/test-multiple.script
@@ -0,0 +1,16 @@
+;;; -*- Lisp -*-
+(load "script-support.lisp")
+(load-asdf)
+
+(quit-on-error
+ (setf asdf:*central-registry* '(*default-pathname-defaults*))
+ (asdf:load-system 'test-multiple)
+ (let* ((asd (asdf:merge-pathnames* (asdf:coerce-pathname "test-multiple.asd")
+                                    *test-directory*))
+        (asd2 (asdf:merge-pathnames* (asdf:coerce-pathname "../tmp/test-multiple-too.asd")
+                                     *test-directory*))
+        (file1 (asdf:compile-file-pathname* "file1")))
+   (assert (= 0 (asdf:run-shell-command
+                 (format nil "/bin/ln -sf ~A ~A" asd asd2))))
+   (asdf:load-system 'test-multiple-too)
+   (assert (asdf::probe-file* file1))))