          (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 (and (eq face 'fsharp-warning-face)
-                 (memq 'fsharp-error-face ofaces))
+    (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))

                        '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."

;;; ----------------------------------------------------------------------------
;;; Errors and Overlays

(defstruct fsharp-error start end face text file)

(defvar fsharp-ac-errors)
(make-local-variable 'fsharp-ac-errors)
