diff --git a/asdf.asd b/asdf.asd
index 0b8694d9d22754ffa451168bc7610b26d95468bd..1c00546cf19404709be4a4734b2f1ea2f6bf128a 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -3,51 +3,35 @@
 ;;;                                                                  ;;;
 ;;; Free Software available under an MIT-style license.              ;;;
 ;;;                                                                  ;;;
-;;; Copyright (c) 2001-2012 Daniel Barlow and contributors           ;;;
+;;; Copyright (c) 2001-2013 Daniel Barlow and contributors           ;;;
 ;;;                                                                  ;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (in-package :asdf)
 
-(defsystem :asdf
-  :author ("Daniel Barlow")
-  :maintainer ("Francois-Rene Rideau")
-  :licence "MIT"
-  :description "Another System Definition Facility"
-  :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.26.141" ;; to be automatically updated by make bump-version
-  :depends-on ()
-  :components ((:module "build" :components ((:file "asdf"))))
-  :in-order-to (#+asdf2.27 (compile-op (monolithic-load-concatenated-source-op asdf/defsystem))))
-
-#-asdf2.27
-(defmethod perform :before
-    ((o compile-op)
-     (c (eql (first (module-components
-                     (first (module-components (find-system :asdf))))))))
-  (declare (ignorable o))
-  (perform (make-instance 'load-source-op) c))
+#+asdf2.27
+(defsystem :asdf/header
+  :components
+  ((:static-file "header.lisp")))
 
 #+asdf2.27
 (defsystem :asdf/defsystem
   :licence "MIT"
   :description "The defsystem part of ASDF"
   :description "Generate asdf.lisp based on this and monolithic-concatenate-source-op"
-  :defsystem-depends-on (:asdf)
   :version (:read-file-form "version.lisp-expr")
   :class :bundle-system
   :build-operation monolithic-concatenate-source-op
   :bundle-pathname "build/asdf"
-  :serial t
   :around-compile call-without-redefinition-warnings ;; be the same as asdf-driver
   :depends-on (:asdf/header :asdf-driver)
   :components
   ((:file "upgrade")
-   (:file "component")
+   (:file "component" :depends-on ("upgrade"))
    (:file "system" :depends-on ("component"))
    (:file "find-system" :depends-on ("system"))
    (:file "find-component" :depends-on ("find-system"))
-   (:file "operation")
+   (:file "operation" :depends-on ("upgrade"))
    (:file "action" :depends-on ("find-component" "operation"))
    (:file "lisp-action" :depends-on ("action"))
    (:file "plan" :depends-on ("action"))
@@ -57,12 +41,26 @@
    (:file "backward-internals" :depends-on ("action" "operate"))
    (:file "defsystem" :depends-on ("backward-internals"))
    (:file "bundle" :depends-on ("lisp-action"))
-   (:file "concatenate-source" :depends-on ("lisp-action"))
+   (:file "concatenate-source" :depends-on ("bundle"))
    (:file "backward-interface" :depends-on ("lisp-action"))
-   (:file "interface")
+   (:file "interface" :depends-on
+          ("defsystem" "concatenate-source"
+           "backward-interface" "backward-internals"
+           "output-translations" "source-registry"))
    (:file "footer" :depends-on ("interface"))))
 
-#+asdf2.27
-(defsystem :asdf/header
+(defsystem :asdf
+  :author ("Daniel Barlow")
+  :maintainer ("Francois-Rene Rideau")
+  :licence "MIT"
+  :description "Another System Definition Facility"
+  :long-description "ASDF builds Common Lisp software organized into defined systems."
+  :version "2.26.141" ;; to be automatically updated by make bump-version
+  :depends-on ()
   :components
-  ((:static-file "header.lisp")))
+  ((:module "build"
+    :components
+    ((:file "asdf"
+      :in-order-to (#-asdf2.27 (compile-op (load-source-op "asdf")))))))
+  :in-order-to
+  (#+asdf2.27 (compile-op (monolithic-load-concatenated-source-op asdf/defsystem))))
diff --git a/test/test-file b/test/test-file
new file mode 100644
index 0000000000000000000000000000000000000000..259e70da8b81e366b6ce6ee1f7231350103f30b7
--- /dev/null
+++ b/test/test-file
@@ -0,0 +1,22 @@
+Single
+double entry
+triple word entry
+escape +
+escape -
+escape _
+escape .
+escape ,
+escape %
+escape @
+escape :
+escape /
+escape \
+escape !
+escape &
+escape *
+escape [
+escape ]
+escape (
+escape )
+escape {
+escape }