       (progn (setq merlin-lock-point (1- start))
              (merlin-sync-lock-zone-display))))
 
-(defun merlin-sync-to-point ()
+(defun merlin-sync-to-point (&optional point)
   "Makes sure the buffer is synchronized on merlin-side and centered around (point)."
-  (merlin-tell-to-point (point))
-  (merlin-seek-exact (point))
-  (merlin-sync-lock-zone-display))
+  (lexical-let
+      ((point (if point point (point))))
+    (merlin-tell-to-point point)
+    (merlin-seek-exact point)
+    (merlin-sync-lock-zone-display)))
 
 ;;;;;;;;;;;;;;;;;;
 ;; ERROR REPORT ;;

  (save-excursion
    (if (not (merlin-is-last-user-p))
        (merlin-rewind))
    (merlin-tell-piece 'struct (merlin-seek-before merlin-lock-point) point)
    (goto-char point)
    (merlin-tell-till-end-of-phrase)
    (setq merlin-lock-point (merlin-get-position))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; POINT SYNCHRONIZATION ;;

(defun merlin-tell-piece (mode start end)
  "Tell the region using mode MODE between START and END in one chunk using."
  (merlin-send-command 
   (list 'tell mode (merlin-buffer-substring start end))))

(defun merlin-tell-till-end-of-phrase ()
  "Tell merlin the buffer until the end of the current phrase is met.
