Noam Postavsky writes: > You need to change call-interactively in callint.c in order to fix the > test case from your OP though, right? This part: > > /* Don't keep command history around forever. */ > if (INTEGERP (Vhistory_length) && XINT (Vhistory_length) > 0) > { > Lisp_Object teml = Fnthcdr (Vhistory_length, Vcommand_history); > if (CONSP (teml)) > XSETCDR (teml, Qnil); > } Whoops, right you are; I jumped the gun on that one. Is there any reason why we can't use add-to-history in places like Fcall_interactively in src/callint.c and read_minibuf in src/minibuf.c, rather than duplicating its logic and falling into off-by-one traps? I attach a patch which delegates to add-to-history in various such places, on the assumption this is kosher. Please let me know whether something like this would be acceptable and/or how it can made so. The second attachment comprises the same minor lisp/simple.el touch-ups as in my last email. Thanks, -- Basil