diff --git a/Makefile b/Makefile
index 8fa0304cb35276aac6c5b6acc28e2fdc57669f33..01c640a3da5d40bc98f30f8b07351317db0e7adc 100644
--- a/Makefile
+++ b/Makefile
@@ -200,3 +200,7 @@ release: TODO test-all test-on-other-machines-too debian-changelog debian-packag
 # dput mentors ../*.changes
 # send debian mentors request
 # send announcement to asdf-announce, asdf-devel, etc.
+#
+## Users don't release as above, only maintainers do.
+## Users, all you need to do is: make
+## Vendors, you may want to test your implementation with: make test l=sbcl
diff --git a/asdf.asd b/asdf.asd
index 6a3e0262e770430feb77109e6be7667eeef8ce79..5baa6d7747977505a20a4279f7ca3be312a134f2 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -74,7 +74,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.30.6" ;; to be automatically updated by make bump-version
+  :version "2.30.7" ;; 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/bin/prelude.lisp b/bin/prelude.lisp
index 4d6138788d57187b933adf337119f32124f432d2..2dcffec7ca08f393e534fa935e62cf17350f78e7 100644
--- a/bin/prelude.lisp
+++ b/bin/prelude.lisp
@@ -8,6 +8,7 @@
     (or (symbol-value (or (find-symbol (string :*asdf-version*) :asdf)
                           (find-symbol (string :*asdf-revision*) :asdf)))
         (string :1.x))))
+#-asdf2 (load (merge-pathnames "../build/asdf.lisp" *load-pathname*))
 #-asdf2 (error "Not ASDF2, you lose!")
 
 (in-package :asdf)
diff --git a/bundle.lisp b/bundle.lisp
index b97f2d872603bcbf54759ded1306247b64f7229e..b1536a250a33c7dd597a2ab2464347fa3fc1229c 100644
--- a/bundle.lisp
+++ b/bundle.lisp
@@ -143,7 +143,7 @@
     (unless name-suffix-p
       (setf (slot-value instance 'name-suffix)
             (unless (typep instance 'program-op)
-              (if (operation-monolithic-p instance) ".all-systems" #-ecl ".system"))))
+              (if (operation-monolithic-p instance) "--all-systems" #-ecl "--system")))) ; . no good for Logical Pathnames
     (when (typep instance 'monolithic-bundle-op)
       (destructuring-bind (&rest original-initargs
                            &key lisp-files prologue-code epilogue-code
diff --git a/defsystem.lisp b/defsystem.lisp
index 89537282b573e347edcca41fd1482ffb63ad64ab..6e7d0a8d673cc6635fa9a99fb9da76e0f1df154d 100644
--- a/defsystem.lisp
+++ b/defsystem.lisp
@@ -127,7 +127,7 @@
                                 ;; remove-plist-keys form.  important to keep them in sync
                                 components pathname perform explain output-files operation-done-p
                                 weakly-depends-on depends-on serial
-                                do-first if-component-dep-fails (version nil versionp)
+                                do-first if-component-dep-fails version
                                 ;; list ends
          &allow-other-keys) options
       (declare (ignorable perform explain output-files operation-done-p builtin-system-p))
diff --git a/find-system.lisp b/find-system.lisp
index 2221ceeee6cb7651dc2be541dbd02a7f198c40f5..b7bdb35cc72ee5e3eae81411ce9bdeedf8f2d174 100644
--- a/find-system.lisp
+++ b/find-system.lisp
@@ -238,7 +238,9 @@ Going forward, we recommend new users should be using the source-registry.
     (let ((name (coerce-name requested)))
       (multiple-value-bind (keys foundp) (gethash name *preloaded-systems*)
         (when foundp
-          (apply 'make-instance 'system :name name :source-file (getf keys :source-file) keys)))))
+          (apply 'make-instance (getf keys :class 'system)
+                 :name name :source-file (getf keys :source-file)
+                 (remove-plist-keys '(:class :name :source-file) keys))))))
 
   (defun register-preloaded-system (system-name &rest keys)
     (setf (gethash (coerce-name system-name) *preloaded-systems*) keys))
diff --git a/footer.lisp b/footer.lisp
index ec94b2b9036596ee1143391fe6cff905fec1f30d..5301c7002f66e87260e02e840076e3d9dc80a0dd 100644
--- a/footer.lisp
+++ b/footer.lisp
@@ -57,6 +57,3 @@
   (asdf-message ";; ASDF, version ~a~%" (asdf-version)))
 
 
-;;; Local Variables:
-;;; mode: lisp
-;;; End:
diff --git a/header.lisp b/header.lisp
index ce632b22b16bdce9021fae64b857ef3aa0a4666c..1bf28297c1a1c93a976a0ed988115eaf375950db 100644
--- a/header.lisp
+++ b/header.lisp
@@ -1,5 +1,5 @@
 ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
-;;; This is ASDF 2.30.6: Another System Definition Facility.
+;;; This is ASDF 2.30.7: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
diff --git a/lisp-action.lisp b/lisp-action.lisp
index 0d8701ade538c7c3b32da1137697d0945214ca46..77c449ae2d567a1d2a885401ad36818a7c74c44a 100644
--- a/lisp-action.lisp
+++ b/lisp-action.lisp
@@ -256,3 +256,4 @@
     (declare (ignorable o))
     `((load-op ,c) ,@(call-next-method))))
 
+
diff --git a/upgrade.lisp b/upgrade.lisp
index 3d286848495a3df5178a36b288c0115b07785253..35448b2f2a40970f3c5bf5e37b7a767e4e487e35 100644
--- a/upgrade.lisp
+++ b/upgrade.lisp
@@ -52,7 +52,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO
          ;; "3.4.5.67" would be a development version in the official upstream of 3.4.5.
          ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5
          ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67
-         (asdf-version "2.30.6")
+         (asdf-version "2.30.7")
          (existing-version (asdf-version)))
     (setf *asdf-version* asdf-version)
     (when (and existing-version (not (equal asdf-version existing-version)))
diff --git a/version.lisp-expr b/version.lisp-expr
index c2d76b56352bed345859b5703c8e169d8cf82539..c742e6b4b2ba16592b450bd9fcd38e597c79a9be 100644
--- a/version.lisp-expr
+++ b/version.lisp-expr
@@ -1 +1 @@
-"2.30.6"
+"2.30.7"