Hi Glenn, Sorry, I was being sloppy. I tried to minimise the problem and enabling flyspell in the XML file seems to be the culprit. So: emacs -Q M-x file-find "...xml file I gave you..." M-x flyspell-mode ... go to final comment line... M-; (i.e. M-x uncomment-region) I did a (profiler-start) with (setq debug-on-quit t) and got this: - flyspell-post-command-hook 1994 81% - byte-code 1994 81% - flyspell-word 1992 81% - sgml-mode-flyspell-verify 1989 81% - sgml-lexical-context 1985 81% - sgml-parse-tag-backward 1985 81% - byte-code 1985 81% - forward-sexp 1985 81% - nxml-forward-balanced-item 1985 81% - nxml-forward-single-balanced-item 1985 81% - funcall 1985 81% + # 1949 80%