From emacs -Q 1. M-: (setopt erc-keep-place-indicator-follow t) RET M-x erc RET ... RET 2. In the server buffer, do M-x erc-keep-place-indicator-mode RET 3. Scroll "up" to hide the indicator but not so far that point moves beyond `erc-insert-marker' 4. Switch away to another buffer and then back 5. Notice the indicator fails to update This happens because `keep-place-indicator' is a local module, and it adds `erc--keep-place-indicator-on-window-buffer-change' to the hook `window-buffer-change-functions' locally. But that function needs to run in the buffer that's being switched to, which may not have the mode enabled (and thus not have the hook member available). Subscribing to the hook globally should fix the problem. There are also at least two bugs affecting the integration between `keep-place-indicator' and `keep-place'. The attached patch attempts to address these as well.