diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 27ee5d372fd..9747bd6cc12 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -3133,7 +3133,14 @@ Must be called after `ispell-buffer-local-parsing' due to dependence on mode." (if (string= "" comment-end) "^" (regexp-quote comment-end))) (if (and (null ispell-check-comments) comment-start) (regexp-quote comment-start)) - (ispell-begin-skip-region ispell-skip-region-alist) + ;; If they set ispell-skip-region-alist to nil, mapconcat + ;; will produce an empty string, which will then match + ;; anything without moving point, something + ;; ispell-skip-region doesn't expect. Perhaps we should be + ;; more defensive and delq "" above as well, in addition to + ;; deleting nil elements. + (if ispell-skip-region-alist + (ispell-begin-skip-region ispell-skip-region-alist)) (ispell--make-filename-or-URL-re))) "\\|"))