Hi maintainers, Here's a cute one from my recent icomplete adventures, Emacs -Q M-x icomplete-mode M-: (completing-read "test: " '("foo" "bar")) C-M-i ;; minibuffer-force-complete, this completes to "foo" C-j ;; icomplete-force-complete-and-exit Expected "foo", right? Nope: you get "bar". Incidently, this also happens without icomplete, provided you have bound the commands minibuffer-force-complete and minibuffer-force-complete-and-exit in minibuffer-local-completion-map. The problem happens because m-f-b cycles/rotates silently rotates the candidate list _after_ forcing the completion. The other second "and-exit" command, which also calls m-f-b during its execution, catches this extra rotation before returning the final value to the user. The attached patch fixes this. It add considerable hackery to an already nasty collection of hacks, but is the safest way short of redesigning this whole cycling business (which is heavily used in completion-at-point). This patch also simplifies the fix for bug#34077 which I had previously submitted. Joćo