             (end-of-line))))
     ;; End of buffer
     (if (not end-p)
-        (progn
-          (merlin-send-command "tell" '("end" nil))
-          (if no-retract (merlin-get-position)
-            (merlin-seek (merlin-get-position))))
-      (if no-retract (merlin-get-position)
-        (merlin-retract-to (merlin-get-position))))))
+        (merlin-send-command "tell" '("end" nil)))
+    (merlin-check-for-errors view-errors-p)
+    (setq merlin--point (merlin-get-position))
+    (merlin-update-lock-zone-display)))
 
       
       

	 (forward-line 10))
       (merlin-tell-piece mode temp end))))

(defun merlin-tell-till-end-of-phrase (&optional no-retract)
  "Tell merlin the buffer until the end of the current phrase is met.
It proceeds by telling (with the end mode) each line until it returns true or until we are at the end of the buffer.

If NO-RETRACT is non-nil, don't retract to a valid position after telling.
"
  (let ((temp-point (point))
        (end-p nil))

    (setq merlin-lock-point (merlin-retract-to (point)))
    (end-of-line)
    (merlin-tell-piece-split "struct" merlin-lock-point (point))
    (merlin-tell-till-end-of-phrase view-errors-p)))
  
(defun merlin-check-synchronize (&optional quiet)
  "If merlin point is before the end of line send everything up to the end of line."
