 ;;; ----------------------------------------------------------------------------
 ;;; Errors and Overlays
 
-(defstruct fsharp-error start end face text)
+(defstruct fsharp-error start end face text file)
 
 (defvar fsharp-ac-errors)
 (make-local-variable 'fsharp-ac-errors)

                        'fsharp-error-face
                      'fsharp-warning-face))
              (msg (gethash "Message" err))
              )
          (add-to-list 'parsed (make-fsharp-error :start beg
                                                  :end   end
                                                  :face  face
                                                  :text  msg)))))))

(defun fsharp-ac/show-error-overlay (err)
  "Draw overlays in the current buffer to represent fsharp-error ERR."

         (end  (fsharp-error-end err))
         (face (fsharp-error-face err))
         (txt  (fsharp-error-text err))
         (file (fsharp-error-text err))
         (ofaces (mapcar (lambda (o) (overlay-get o 'face))
                         (overlays-in beg end)))
         )
    (unless (or (string= (expand-file-name buffer-file-name)
                         (expand-file-name file))
             (and (eq face 'fsharp-warning-face)
                 (memq 'fsharp-error-face ofaces)))

      (when (and (eq face 'fsharp-error-face)
                 (memq 'fsharp-warning-face ofaces))
