Index: /branches/event-ide/ccl/cocoa-ide/hemlock/src/bindings.lisp
===================================================================
--- /branches/event-ide/ccl/cocoa-ide/hemlock/src/bindings.lisp	(revision 8054)
+++ /branches/event-ide/ccl/cocoa-ide/hemlock/src/bindings.lisp	(revision 8055)
@@ -928,8 +928,6 @@
 (bind-key "Completion Self Insert" #k"linefeed" :mode "Completion")
 
-(bind-key "Completion Complete Word" #k"end")
-(bind-key "Completion Rotate Completions" #k"meta-end")
-
-
+(bind-key "Completion Complete Word" #k"end" :mode "Completion")
+(bind-key "Completion Rotate Completions" #k"meta-end" :mode "Completion")
 
 
Index: /branches/event-ide/ccl/cocoa-ide/hemlock/src/completion.lisp
===================================================================
--- /branches/event-ide/ccl/cocoa-ide/hemlock/src/completion.lisp	(revision 8054)
+++ /branches/event-ide/ccl/cocoa-ide/hemlock/src/completion.lisp	(revision 8055)
@@ -195,6 +195,17 @@
   "Toggles Completion Mode in the current buffer."
   (declare (ignore p))
-  (setf (buffer-minor-mode (current-buffer) "Completion")
-	(not (buffer-minor-mode (current-buffer) "Completion"))))
+  (let ((buffer (current-buffer)))
+    (setf (buffer-minor-mode buffer "Completion")
+          (not (buffer-minor-mode buffer "Completion")))
+    (let ((fields (buffer-modeline-fields buffer)))
+      (if (buffer-minor-mode buffer "Completion")
+        (unless (member *completion-modeline-field* fields)
+          (hi::set-buffer-modeline-fields buffer
+                                          (append fields
+                                                  (list *completion-modeline-field*))))
+        (when (member *completion-modeline-field* fields)
+          (hi::set-buffer-modeline-fields buffer
+                                          (remove *completion-modeline-field*
+                                                  fields)))))))
 
 
@@ -502,14 +513,12 @@
 	  (or (find-completion prefix prefix-length) ""))
     (unless (eq old *completion-mode-possibility*)
-      (update-modeline-field *echo-area-buffer* *echo-area-window*
-			     *completion-modeline-field*))))
+      (hi::note-modeline-change (current-buffer)))))
 
 (defun clear-completion-display ()
   (unless (= (length (the simple-string *completion-mode-possibility*)) 0)
     (setq *completion-mode-possibility* "")
-    (update-modeline-field *echo-area-buffer* *echo-area-window*
-			   *completion-modeline-field*)))
-
-
+    (hi::note-modeline-change (current-buffer))))
+
+#|
 ;;; COMPLETION-REDISPLAY-FUN erases any completion displayed in the status line.
 ;;;
@@ -518,4 +527,4 @@
   (unless (eq (last-command-type) :completion-self-insert)
     (clear-completion-display)))
-;;;
 (add-hook redisplay-hook #'completion-redisplay-fun)
+|#
Index: /branches/event-ide/ccl/cocoa-ide/hemlock/src/main.lisp
===================================================================
--- /branches/event-ide/ccl/cocoa-ide/hemlock/src/main.lisp	(revision 8054)
+++ /branches/event-ide/ccl/cocoa-ide/hemlock/src/main.lisp	(revision 8055)
@@ -101,11 +101,8 @@
 ;;; Completion.Lisp, but it is compiled and loaded after this file.
 ;;;
-(declaim (special hemlock::*completion-mode-possibility*))
-;;; Hack for now until completion mode is added.
-(defvar hemlock::*completion-mode-possibility* "")
-;;;
 (make-modeline-field
  :name :completion :width 40
  :function #'(lambda (buffer)
+               (declare (special hemlock::*completion-mode-possibility*))
 	       (declare (ignore buffer))
 	       hemlock::*completion-mode-possibility*))
