I report two problems, but they really are the same bug. 1st problem: From emacs -Q : select e.g. the first line of the scratch buffer hit C-x n n (that is a disabled command, so you get a prompt) answer 'n' to the prompt the buffer is narrowed anyway. I expected nothing to happen wrt narrowing. 2nd problem: From emacs -Q, eval : (defun my-command () (interactive) (message "Got called !")) (put 'my-command 'disabled t) then: M-x my-command RET (you get a prompt) hit SPC to execute just once and leave disabled hit C-h e to show the *Messages* buffer You can see: Got called ! [2 times] I expected to see "Got called !" (only once). Both of these seem to be fixed with the attached patch. However, with this patch, when `disabled-command-function' decides to run the command, it does so by invoking call-interactively, thereby not executing what command-execute would have done if the command had not been disabled. It doesn't seem right but I'm not sure (and have no idea what to change anyway). Here's the patch :