Stefan Monnier writes: >> - (upcase-word 1) >> + >> + ;; If we're in subword-mode then functions operating on words act >> + ;; differently. Here I temporarily disable subword-mode before >> + ;; touching the words >> + (let ((find-word-boundary-function-table >> + (if (boundp 'subword-empty-char-table) >> + subword-empty-char-table find-word-boundary-function-table))) >> + (upcase-word 1)) > > Yuck. I suggest you use upcase-region instead (and probably something > like skip-char-forward to find the word's boundaries). OK. New patch attached. It's a bit less ugly, maybe; still pretty verbose. Marking the -word functions as interactive-only would be a great thing to do.