That's because (interactive "p") converts to a number. Not sure why that's relevant, since menu-bar-mode uses (interactive "P"): p -- Prefix arg converted to number. Does not do I/O. P -- Prefix arg in raw form. Does not do I/O. which, as I suggested earlier, passes nil for no argument.