   (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 ;;

      (merlin--acquire-buffer)
      (let* ((messages nil)
             (project (merlin--project-get-cached)))
        (when merlin-report-dot-merlin-in-lighter
          (cond ((cdr project) (add-to-list 'messages "errors in .merlin"))
                ((not (car project)) (add-to-list 'messages "no .merlin"))))
        (when merlin-show-instance-in-lighter
          (add-to-list 'messages merlin-instance))
        (if messages (concat " merlin (" (mapconcat 'identity messages ",") ")")

(make-variable-buffer-local 'merlin-lock-zone-fringe-overlay)

;; Errors related variables
(defvar merlin-erroneous-buffer nil
  "Whether the buffer is erroneous or not")
(make-variable-buffer-local 'merlin-pending-errors)

(defvar merlin-pending-errors nil
  "Pending errors.")
(make-variable-buffer-local 'merlin-pending-errors)
