diff --git a/hemlock/debug.lisp b/hemlock/debug.lisp
index 9dee4c4a3bd4ef38d0a71e6409b1f33921fb5d2f..7fb2d0b686280d7fd38903162e7f54ab944b915b 100644
--- a/hemlock/debug.lisp
+++ b/hemlock/debug.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/hemlock/debug.lisp,v 1.5 1993/05/31 20:26:29 ram Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/hemlock/debug.lisp,v 1.6 1993/07/30 23:35:58 ram Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -144,6 +144,7 @@
 ;;; RPC routine saying it is okay to return to the editor's top level.
 ;;;
 (defvar *debug-editor-source-data* nil)
+(defvar *in-debug-edit-source* nil)
 
 (defcommand "Debug Edit Source" (p)
   "Given the \"Current Eval Server\"'s current debugger frame, place the user
@@ -162,10 +163,12 @@
     (wire:wire-force-output wire)
     ;;
     ;; Wait for the source info.
-    (let ((*debug-editor-source-data* nil))
-      (loop
-	(system:serve-event)
-	(when *debug-editor-source-data* (return))))))
+    (let ((*debug-editor-source-data* nil)
+	  (*in-debug-edit-source* t))
+      (catch 'blow-debug-edit-source
+	(loop
+	  (system:serve-event)
+	  (when *debug-editor-source-data* (return)))))))
 
 ;;; EDIT-SOURCE-LOCATION -- Internal Interface.
 ;;;
@@ -233,8 +236,9 @@
 ;;; slave cannot give the editor source information.
 ;;;
 (defun cannot-edit-source-location ()
-  (throw 'editor-top-level nil))
-
+  (loud-message "Can't edit source.")
+  (when *in-debug-edit-source*
+    (throw 'blow-debug-edit-source nil)))
 
 
 ;;;; Breakpoints.