   (when (or (/= (buffer-chars-modified-tick) fsharp-ac-last-parsed-ticks)
             force-sync)
     (save-restriction
-      (let ((file (file-truename (buffer-file-name))))
+      (let ((file (fsharp-ac--buffer-truename)))
         (widen)
         (fsharp-ac--log (format "Parsing \"%s\"\n" file))
         (process-send-string

  (when (fsharp-ac-can-make-request quiet)
     (fsharp-ac-parse-current-buffer)
     (fsharp-ac-send-pos-request "tooltip"
                                 (file-truename (buffer-file-name))
                                 (line-number-at-pos)
                                 (current-column))))


(defun fsharp-ac-can-make-request (&optional quiet)
  "Test whether it is possible to make a request with the compiler binding.
The current buffer must be an F# file that exists on disk."
  (let ((file (fsharp-ac--buffer-truename)))
    (cond
     ((null file)
      (unless quiet
