   (merlin-error-reset)
   (merlin-sync-to-point (point-max) t)
   (let* ((errors (merlin-send-command 'errors))
-         (errors (delete-if (lambda (e) (not (assoc 'start e))) errors))
+         (no-loc (remove-if (lambda (e) (assoc 'start e)) errors))
+         (errors (remove-if (lambda (e) (not (assoc 'start e))) errors))
          (errors (if merlin-report-warnings errors
-                   (delete-if (lambda (e) (merlin-error-warning-p (cdr (assoc 'message e))))
+                   (remove-if (lambda (e) (merlin-error-warning-p (cdr (assoc 'message e))))
                               errors))))
-    (if (not errors) (when view-errors-p (message "ok"))
+    (if (and (not errors) (not no-loc)) (when view-errors-p (message "ok"))
       (progn
-        (merlin-transform-display-errors errors)
-        (when view-errors-p
-          (message "(%d pending errors, use %s to jump)"
-                   (length errors)
-                   (substitute-command-keys "\\[merlin-error-next]")))))))
+        (setq merlin-erroneous-buffer t)
+        (when no-loc
+          (mapcar (lambda (e) (message (cdr (assoc 'message e)))) no-loc))
+        (when errors
+          (merlin-transform-display-errors errors)
+          (when view-errors-p
+            (message "(%d pending errors, use %s to jump)"
+                     (length errors)
+                     (substitute-command-keys "\\[merlin-error-next]"))))))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; COMPLETION-AT-POINT SUPPORT ;;

  "Show the current instance of the buffer in the lighter."
  :group 'merlin :type 'boolean)

(defcustom merlin-report-dot-merlin-in-lighter nil
  "Report absence of .merlin or errors in .merlin in the lighter."
  :group 'merlin :type 'boolean)


  "Clear error list."
  (interactive)
  (setq merlin-pending-errors nil)
  (setq merlin-erroneous-buffer nil)
  (merlin-error-delete-overlays))

(defun merlin--overlay-p (overlay)
