   (if (and merlin-mode (< start merlin-lock-point))
       (progn
         (setq merlin-lock-point (merlin-retract-to start))
-        (merlin-update-lock-zone-display))))
+        (merlin-update-lock-zone-display)))
+  (if merlin-dirty-point
+    (setq merlin-dirty-point (min merlin-dirty-point start))
+    (setq merlin-dirty-point start)))
 
 ;; COMPLETION
 (defun merlin-extract-complete (prefix l)

  "Retract merlin's view to POINT"
  (merlin-seek point))

(defun merlin-update-lock-zone-display ()
  "Update the locked zone display, according to `merlin-display-lock-zone', ie.
 iterates through it and call each method."

        (merlin-send-command "tell" '("end" nil)))
    (merlin-check-for-errors view-errors-p)
    (setq merlin-lock-point (merlin-get-position))
    (setq merlin-dirty-point nil)
    (merlin-update-lock-zone-display)))

      
