anchor.diff:              (catch +recursive-minibuffer-break-tag+
                 (handler-case
                     (with-current-window (minibuffer-window)
  -                    (%switch-to-buffer *minibuffer-buffer* nil nil)
  +                    (%switch-to-buffer (minibuffer-buffer) nil nil)
                       (let ((minibuf-buffer-prev-string
                               (points-to-string (buffer-start-point (minibuffer))
                                                 (buffer-end-point (minibuffer))))
  
positive.code: 
  (defmethod message-using-minibuffer-class ((minibuffer-window minibuffer-window) string args)
    (cond (string
           (erase-buffer *echoarea-buffer*)
           (let ((point (buffer-point *echoarea-buffer*)))
             (insert-string point (apply #'format nil string args)))
           (when (active-minibuffer-window)
             (handler-case
                 (with-current-window (minibuffer-window)
                   (unwind-protect (progn
                                     (%switch-to-buffer *echoarea-buffer* nil nil)
                                     (sit-for 1 t))
                     (%switch-to-buffer *minibuffer-buffer* nil nil)))
               (editor-abort ()
                 (minibuf-read-line-break)))))
          (t
           (erase-buffer *echoarea-buffer*))))
  
  (defmethod message-using-minibuffer-class ((minibuffer-window popup-minibuffer-window) string args)
    (cond (string
  
negative.code:                             (move-point (current-point) minibuf-buffer-prev-point)
                              (when (= 1 *minibuf-read-line-depth*)
                                (run-hooks *minibuffer-deactivate-hook*)
                                (%switch-to-buffer (echoarea-buffer) nil nil))))
                          (setf (minibuffer-start-charpos) start-charpos))))
                  (editor-abort (c)
                    (error c))))))
        (if (eq result +recursive-minibuffer-break-tag+)
  