Hi, Some packages like erc-hl-nicks [0] use `erc-button-add-face' to add extra faces to some strings, notably nicknames. For instance, on a coloured current nickname mention for the nick 'nacho' (current nick), `erc-faces-in' would return: λ> (erc-faces-in (buffer-substring 348 349)) ((erc-hl-nicks-nick-nacho-face erc-current-nick-face)) instead of: λ> (erc-faces-in (buffer-substring 323 324)) (erc-current-nick-face) when `erc-hl-nicks-mode` is not enabled. Note the nesting. This is problematic because `erc-track-modified-channels` does this comparison: ... (let ((faces (erc-faces-in (buffer-string)))) ... (not (catch 'found (dolist (f faces) (when (member f erc-track-faces-priority-list) (throw 'found t)))))) ... failing to detect that `erc-current-nick-face' is indeed active and, assuming that `erc-current-nick-face' is member of `erc-track-faces-priority-list', therefore failing to add the buffer modified flag to the modeline. I'm not an expert in this package so perhaps erc-hl-nicks shouldn't be doing this at all to add the extra faces to colour nicks. However, this situation can be easily addressed from the erc-track side by flattening the list that `erc-faces-in' returns as the attached patch (against current master) suggests. Hope that the modifications that I've done to the test help clarifying even more the issue. With the patch applied, the example call to `erc-faces-in' would return: λ> (erc-faces-in (buffer-substring 348 349)) (erc-hl-nicks-nick-nacho-face erc-current-nick-face) and erc-track would work as expected when `erc-hl-nicks-mode` is enabled. Thanks. [0] https://github.com/leathekd/erc-hl-nicks