Thank you Juri for your help on this. I have tested the attached patch (isearch-5.patch) with `multi-isearch-buffers'/`multi-isearch-files': it seems OK now. < To avoid the need to add multi-isearch-end to isearch-mode-end-hook, < you could try to restore saved variables before calling isearch-mode. < Then multi-isearch-setup called from isearch-mode should take care of < adding multi-isearch-end to isearch-mode-end-hook when necessary < variables are already restored, i.e. when you save the variable < multi-isearch-next-buffer-function instead of < multi-isearch-next-buffer-current-function. I got the point. Actually I bind multi-isearch-next-buffer-function to multi-isearch-next-buffer-current-function, because the former was nil and multi-isearch-setup makes a non-nil test for this variable at the beginning < multi-isearch-current-buffer still needs to be restored after < isearch-mode in the same place where you already added it in your patch. OK.