diff --git a/hemlock/echo.lisp b/hemlock/echo.lisp
index 529018a5e914217de2bf79051b9f6c3dc8529a04..8f384eb497911f2bca119d79e7ac68b354c68f67 100644
--- a/hemlock/echo.lisp
+++ b/hemlock/echo.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/echo.lisp,v 1.3 1991/02/08 16:34:05 ram Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/hemlock/echo.lisp,v 1.4 1991/10/23 11:00:02 chiles Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -158,7 +158,8 @@
 
 
 ;;; LOUD-MESSAGE -- Public.
-;;;    Like message, only more provocative.
+;;;
+;;; Like message, only more provocative.
 ;;;
 (defun loud-message (&rest args)
   "This is the same as MESSAGE, but it beeps and clears the echo area before
@@ -168,6 +169,24 @@
   (apply #'message args))
 
 
+(defhvar "Raise Echo Area When Modified"
+  "When set, Hemlock raises the echo area window when output appears there."
+  :value nil)
+;;;
+(defun raise-echo-area-when-modified (buffer modified)
+  (when (and (value ed::raise-echo-area-when-modified)
+	     (eq buffer *echo-area-buffer*)
+	     modified)
+    (let* ((hunk (window-hunk *echo-area-window*))
+	   (win (window-group-xparent (bitmap-hunk-window-group hunk))))
+      (xlib:map-window win)
+      (setf (xlib:window-priority win) :above)
+      (xlib:display-force-output
+       (bitmap-device-display (device-hunk-device hunk))))))
+;;;
+(add-hook buffer-modified-hook 'raise-echo-area-when-modified)
+
+
 
 ;;;; DISPLAY-PROMPT-NICELY and PARSE-FOR-SOMETHING.
 
@@ -343,7 +362,7 @@
    by the current buffer, and by any modes for the current buffer."
   (do ((tables (list (buffer-variables *current-buffer*)
 		     *global-variable-names*)
-	       (cons (hi::mode-object-variables (car mode)) tables))
+	       (cons (mode-object-variables (car mode)) tables))
        (mode (buffer-mode-objects *current-buffer*) (cdr mode)))
       ((null mode) tables)))