diff --git a/uiop/run-program.lisp b/uiop/run-program.lisp
index 9f00e1c1eb2cdbbc2ef01dcf3c08d2757264a134..2986f447cbd27720f1e33527c53d37c9eaf11220 100644
--- a/uiop/run-program.lisp
+++ b/uiop/run-program.lisp
@@ -336,10 +336,15 @@ EXTERNAL-FORMAT for the stream passed to the OUTPUT processor."
                              (list (run 'ext:run-program (car command)
                                         :arguments (cdr command)))))
                          #+lispworks
-                         (system:run-shell-command
-                          (cons "/usr/bin/env" command) ; lispworks wants a full path.
-                          :input interactive :output (or (and pipe :stream) interactive)
-                          :wait wait :save-exit-status (and pipe t))
+                         (if interactive
+                             (system:call-system-showing-output
+                              (cons "/usr/bin/env" command) ; lispworks wants a full path.
+                              :show-cmd nil
+                              :wait wait)
+                           (system:run-shell-command
+                            (cons "/usr/bin/env" command) ; lispworks wants a full path.
+                            :input nil :output (and pipe :stream)
+                            :wait wait :save-exit-status (and pipe t)))
                          #+(or clozure cmu ecl sbcl scl)
                          (#+(or cmu ecl scl) ext:run-program
                             #+clozure ccl:run-program