anchor.diff:  (defun repl-read-string (thread tag)
     (let ((buffer (repl-buffer)))
       (when buffer
  -      (push thread *read-string-thread-stack*)
  -      (push tag *read-string-tag-stack*)
  +      (push thread (read-string-thread-stack))
  +      (push tag (read-string-tag-stack))
         (let ((windows (get-buffer-windows buffer)))
           (setf (current-window)
                 (if windows
  
positive.code:   (repl-reset-input)
    (lem.listener-mode:listener-mode t))
  
  (defvar *read-string-thread-stack* nil) ;(1)
  (defvar *read-string-tag-stack* nil) ;(1)
  
  (define-key *lisp-repl-mode-keymap* "C-c C-c" 'lisp-repl-interrupt)
  
  (define-command lisp-repl-interrupt () ()
    (swank-protocol:send-message-string *connection*
                                        (format nil "(:emacs-interrupt ~(~S~))"
                                                (or (car *read-string-thread-stack*)
                                                    :repl-thread))))
  
  (defun repl-buffer (&optional force)
  
negative.code: 
  (defun repl-abort-read (thread tag)
    (declare (ignore thread tag))
    (pop (read-string-thread-stack))
    (pop (read-string-tag-stack))
    (message "Read aborted"))
  
  (defun repl-read-line (point string)
    (declare (ignore point))
    (let ((thread (pop (read-string-thread-stack)))
          (tag (pop (read-string-tag-stack))))
      (swank-protocol:send-message-string
       *connection*
       (format nil "(:emacs-return-string ~A ~A ~S)"
  