Mode functions generated via `define-minor-mode' will signal an error when messaging a mode's "pretty" name contains "%". To reproduce: 1. eval: (define-minor-mode 100%-failure-mode "oops") 2. enable or disable the mode. The line responsible for the error is: (message ,(format "%s %%sabled%%s" pretty-name) (if ,getter "en" "dis") local))))) The attached patch fixes the issue for me.