emacs-28.2 -Q -nw C-x ( x C-u C-x ) The C-u C-x ) should complete the macro definition and then execute the macro three times, making the buffer contents "xxxx". Instead, the error "Wrong type argument: fixnump, (4)" occurs. (Changing "C-u" to "C-u 4" gives the expected result.) The "P" in the interactive declaration of kmacro-end-macro should be a "p". Looking at all eleven "P" in kmacro.el, I think four of them should be "p": kmacro-call-ring-2nd, kmacro-call-ring-2nd-repeat, kmacro-end-macro, and kmacro-end-and-call-macro. Alternatively, if the meaning of a bare C-u argument is being reserved for some future feature, then it should be explicitly mentioned in the documentation that C-u and C-u 4 are treated differently. As the manual says: A few commands treat a plain ‘C-u’ differently from an ordinary argument. A few others may treat an argument of just a minus sign differently from an argument of −1. These unusual cases are described when they come up; they exist to make an individual command more convenient, and they are documented in that command’s documentation string.