diff --git a/code/debug.lisp b/code/debug.lisp
index 8cde4b73b384404bc2f1da8488bcf60f657a2ad0..56ff1718b3e45f93d0b737580f7cb2f03bd7e62b 100644
--- a/code/debug.lisp
+++ b/code/debug.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/debug.lisp,v 1.52 2001/02/22 20:28:51 pw Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/debug.lisp,v 1.53 2001/07/12 20:10:52 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -802,9 +802,11 @@ See the CMU Common Lisp User's Manual for more information.
 (defun debug-eval-print (exp)
   (setq +++ ++ ++ + + - - exp)
   (let* ((values (multiple-value-list
-		  (if (and (fboundp 'compile) *auto-eval-in-frame*)
-		      (di:eval-in-frame *current-frame* -)
-		      (eval -))))
+		  (cond ((and (fboundp 'cl::commandp)(funcall 'cl::commandp exp))
+			 (funcall 'cl::invoke-command-interactive exp))
+			((and (fboundp 'compile) *auto-eval-in-frame*)
+			 (di:eval-in-frame *current-frame* -))
+			(t (eval -)))))
 	 (*standard-output* *debug-io*))
     (fresh-line)
     (if values (prin1 (car values)))
diff --git a/code/lispinit.lisp b/code/lispinit.lisp
index 18225b492e40bfd6bf963581c5181353eeed5514..fde156949a8692a470c7f1c4172645ba23266a6d 100644
--- a/code/lispinit.lisp
+++ b/code/lispinit.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/lispinit.lisp,v 1.64 2001/07/08 17:41:41 pw Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/lispinit.lisp,v 1.65 2001/07/12 20:10:52 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -543,7 +543,10 @@
   "Evaluate FORM, returning whatever it returns but adjust ***, **, *, +++, ++,
   +, ///, //, /, and -."
   (setf - form)
-  (let ((results (multiple-value-list (eval form))))
+  (let ((results (multiple-value-list
+		  (if (and (fboundp 'commandp)(funcall 'commandp form))
+		      (funcall 'invoke-command-interactive form)
+		      (eval form)))))
     (finish-standard-output-streams)
     (setf /// //
 	  // /