diff --git a/uiop/run-program.lisp b/uiop/run-program.lisp
index 4cbf606a39a825ae84ff8a5fa599fbb145bd3f25..b215ac44e7f2e7c733a88444362d631ab287e3b3 100644
--- a/uiop/run-program.lisp
+++ b/uiop/run-program.lisp
@@ -582,9 +582,9 @@ It returns a process-info object."
   (defun %wait-process-result (process-info)
     (or (slot-value process-info 'exit-code)
         (let ((process (slot-value process-info 'process)))
+          #-(or allegro clasp clozure cmucl ecl lispworks mkcl sbcl scl)
+          (error "~S not implemented" '%wait-process)
           (when process
-            #-(or allegro clasp clozure cmucl ecl lispworks mkcl sbcl scl)
-            (error "~S not implemented" '%wait-process)
             ;; 1- wait
             #+clozure (ccl::external-process-wait process)
             #+(or cmucl scl) (ext:process-wait process)