Now, I had tried it earlier and noticed something looked fishy. Now I can reproduce the problem: 1. With an active region, call C-M-% 2. Switch from the minibuffer back to the original buffer 3. Call keyboard-escape-quit (maybe twice) to quit the minibuffer prompt. Then the buffer-local value of `isearch-filter-predicate' is not cleaned up. Is it by any chance intentional that minibuffer-exit-hook doesn't run in this case?