diff --git a/allegro-variants.lisp b/allegro-variants.lisp
index 1750428c24eda3939088b4cdefff624577b6def4..940480c52535a06cc9362d0abb24127a878b26e6 100644
--- a/allegro-variants.lisp
+++ b/allegro-variants.lisp
@@ -19,8 +19,12 @@ locations, you may simply specify the Allegro install directories using these va
   "Return a list of possible Allegro variants based on built-in information
 and environment variables.  The returned list is made up of argument lists for
 REGISTER-LISP-IMPLEMENTATION."
+  ;; Beware that on Windows, we use the non-multithreaded console application build.exe
+  ;; so that we may have console I/O on the existing stdin and stdout, that we may capture.
   (while-collecting (c)
-    (loop :for (smpvar smpname smpfullname) :in `(("" "" "") ("S" :_s " (SMP)")) :do
+    (loop
+      :with windowsp = (os-windows-p)
+      :for (smpvar smpname smpfullname) :in `(("" "" "") ("S" :_s " (SMP)")) :do
       (loop
         :for (bitsvar bitsname bitsfullname) :in '(("" "" "") ("64" "_64" " (64-bit words)"))
         :for dirvar = (format nil "~:@(ALLEGRO~A~A~)" bitsvar smpvar)
@@ -33,9 +37,14 @@ REGISTER-LISP-IMPLEMENTATION."
               :for fullname = (strcat "Allegro CL"
                                       casefullname charfullname bitsfullname smpfullname)
               :for executable = (format nil "~(~alisp~a~)" caseexe charname) :do
+              :for (exepath imgpath) = (if windowsp
+                                           (list (subpathname dir (if (emptyp charfullname) "buildi.exe" "build.exe"))
+                                                 (subpathname dir executable :type "dxl"))
+                                           (list (subpathname dir executable) nil))
                 (c `(,allegro-variant
                      :fullname ,fullname
-                     :name ,(native-namestring (subpathname dir executable))
+                     :name ,(native-namestring exepath)
+                     :default-image ,(native-namestring imgpath)
                      :feature :allegro ;; do we want a more discriminating feature expression?
                      :flags ("-qq")
                      :eval-flag "-e"
@@ -46,10 +55,7 @@ REGISTER-LISP-IMPLEMENTATION."
                      :image-executable-p nil
                      :standalone-executable nil
                      :argument-control t
-                     :disable-debugger ("-batch" ; see also -#D -#C -#!
-                                        ,@(when (and (os-windows-p)
-                                                     (not (getenvp "ALLEGRO_NOISY")))
-                                            '("+c")))
+                     :disable-debugger ("-batch") ; see also -#D -#C -#!
                      :quit-format "(excl:exit ~A :quiet t)"
                      :dump-format "(progn (sys:resize-areas :global-gc t :pack-heap t :sift-old-areas t :tenure t) (excl:dumplisp :name ~A :suppress-allegro-cl-banner t))"))))))))
 
diff --git a/lisp-invocation.asd b/lisp-invocation.asd
index e72fd211d6abba31f4752ba1e91fce33661be3d3..60ab0ce2c6ff559fe3d1ead624bc471824f631c8 100644
--- a/lisp-invocation.asd
+++ b/lisp-invocation.asd
@@ -13,7 +13,7 @@
   (error "ASDF 3.1.2 required"))
 
 (defsystem "lisp-invocation"
-  :version "1.0.9"
+  :version "1.0.10"
   :author ("Francois-Rene Rideau")
   :maintainer "Francois-Rene Rideau"
   :licence "MIT"
diff --git a/lisp-invocation.lisp b/lisp-invocation.lisp
index ad9106873c27258daf2e97eb8eea110e1d476e8b..dc21b99061367b2c531d9669c3ff88dd834142b5 100644
--- a/lisp-invocation.lisp
+++ b/lisp-invocation.lisp
@@ -48,6 +48,7 @@
   arguments-end
   image-flag
   image-executable-p
+  default-image
   standalone-executable
   argument-control
   disable-debugger
@@ -100,16 +101,17 @@ followed by a plist of keywords and arguments."
     (&key (implementation-type (implementation-type))
        lisp-path
        (lisp-flags :default)
-       image-path
+       (image-path nil image-path-p)
        load
        eval
        arguments
        debugger
        cross-compile)
   (with-slots (name flags disable-debugger load-flag eval-flag
-	       image-flag image-executable-p standalone-executable
+	       image-flag default-image image-executable-p standalone-executable
 	       arguments-end argument-control)
       (get-lisp-implementation implementation-type)
+    (unless image-path-p (setf image-path default-image))
     (append
      (when (or (null image-path) (not image-executable-p))
        (ensure-list
diff --git a/non-special.lisp b/non-special.lisp
index dd3ae9bf10742dd0967c2dc1e5ff1edb90f10997..a4acabc5570a8dfaaee22dc0d075b5d4748cc74b 100644
--- a/non-special.lisp
+++ b/non-special.lisp
@@ -1,3 +1,4 @@
+;; Composing command lines that don't use any special character.
 (defpackage :lisp-invocation/non-special
   (:use :common-lisp :uiop)
   (:export