anchor.diff:  current message was set."))
     (:default-initargs
      :scroll-bars nil
  -    :display-function 'display-minibuffer
  -    :display-time :no-clear
  -    :incremental-redisplay t))
  -
  -(defmethod stream-accept :before ((pane minibuffer-pane) type &rest args)
  -  (declare (ignore type args))
  -  (window-clear pane)
  -  (when (message pane)
  -    (setf (message pane) nil)
  -    ;; FIXME: If we do not redisplay here, the area occupied by the
  -    ;; message will be blanked with a white rectangle at the first
  -    ;; keystroke.
  -    (redisplay-frame-pane (pane-frame pane) pane)))
  +   :display-function 'display-minibuffer
  +   :display-time :command-loop
  +   :incremental-redisplay t))
  +
  +(defmethod handle-repaint ((pane minibuffer-pane) region)
  +  (when (and (message pane)
  +             (> (get-universal-time)
  +                (+ *minimum-message-time* (message-time pane))))
  +    (window-clear pane)
  +    (setf (message pane) nil))
  +  (call-next-method))
  +
  +(defmethod (setf message) :after (new-value (pane minibuffer-pane))
  +  (change-space-requirements pane))
  +
  +(defmethod pane-needs-redisplay ((pane minibuffer-pane))
  +  ;; Always call the display function, never clear the window. This
  +  ;; allows us to time-out the message in the minibuffer.
  +  (values t nil))
  +
  +(defun display-minibuffer (frame pane)
  +  (declare (ignore frame))
  +  (handle-repaint pane +everywhere+))
   
   (defmethod stream-accept :around ((pane minibuffer-pane) type &rest args)
     (declare (ignore args))
  +  (when (message pane)
  +    (setf (message pane) nil))
  +  (window-clear pane)
     ;; FIXME: this isn't the friendliest way of indicating a parse
     ;; error: there's no feedback, unlike emacs' quite nice "[no
     ;; match]".
  -  (loop
  -   (handler-case
  -       (with-input-focus (pane)
  -         (return (call-next-method)))
  -     (parse-error () nil))))
  +  (unwind-protect
  +       (loop
  +        (handler-case
  +            (with-input-focus (pane)
  +              (return (call-next-method)))
  +          (parse-error () nil)))
  +    (window-clear pane)))
   
   (defmethod stream-accept ((pane minibuffer-pane) type &rest args
                             &key (view (stream-default-view pane))
  
positive.code:   (apply #'prompt-for-accept pane type view args)
    ;; but we need to turn some of ACCEPT-1 off.
    (apply #'accept-1-for-minibuffer pane type args))
  
  ;;; simpler version of McCLIM's internal operators of the same names:
  ;;; HANDLE-EMPTY-INPUT to make default processing work, EMPTY-INPUT-P
  
negative.code:                                 ;; for presentation-to-command-translators,
                                  ;; which are searched for in
                                  ;; (frame-command-table *application-frame*)
                                  (redisplay-frame-pane ,frame (frame-standard-input ,frame))
                                  (setf (frame-command-table ,frame) command-table)
                                  (process-gestures-or-command ,frame))
                              (unbound-gesture-sequence (c)
  