Hi, I’ve encountered a potential bug in Emacs when using the |query-replace| (via |perform-replace|) functions. When performing text replacements across a buffer and choosing to replace but not immediately move the point (using the |,| |act-and-show| option), the function does replace the text as expected but fails to update the highlighting to the region containing the replacement. *Steps to Reproduce:* 1. Open a buffer with the following content: |String to be replaced. Another string. String to be replaced. Another string. End | 2. Run the following command: |(query-replace "String to be replaced." "Replacement." nil (point-min) (point-max)) | 3. When prompted to replace a match, use the |,| (|act-and-show|) option to replace the text but pause moving to the next match. *Expected Behavior:* After a replacement is made and before moving to the next match, the highlighted region of the replaced text should be “updated” to fit the replaced text. *Actual Behavior:* The highlighting remains on the matched region. This issue can be visually confirmed in the following animation: View Animation on Imgur *Visual Evidence:* * Highlight *before* using |act-and-show| (match): * Highlight *after* using |act-and-show| while paused (replacement): As demonstrated, the highlighted region post-replacement does not correspond to any current match, which is misleading and might affect further editing decisions. Best regards, Gabriele Nicolardi ​