Reproduction with emacs -Q: (with-current-buffer (get-buffer-create "*broken*") (require 'cl-lib) (erase-buffer) (delete-all-overlays) (fundamental-mode) (insert "AAAAA") (goto-char (point-min)) ;; Add two faces (set-text-properties (point-min) (point-max) '(face font-lock-type-face)) (let ((ov (make-overlay (point-min) (point-max)))) (overlay-put ov 'face 'font-lock-negation-char-face)) ;; This passes, proving that font-lock-negation-char-face is not contributing to the ;; foreground color (cl-assert (eq (face-attribute 'font-lock-negation-char-face :foreground) 'unspecified)) ;; This fails: foreground-color-at-point reads the face of the overlay, sees that it's undefined, ;; and ignores the 'face text property (cl-assert (eq (foreground-color-at-point) (face-attribute 'font-lock-type-face :foreground))) (pop-to-buffer (current-buffer))) Let me know if I can provide more info. Clément.