diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index ee94ff01d64..253485fc87f 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el @@ -1356,7 +1356,14 @@ The buffer to mark them in is `flyspell-large-region-buffer'." (progn (setq flyspell-large-region-beg (point)) (goto-char (- (point) 1)) - (setq keep (flyspell-word))) + (setq keep + ;; Detect when WORD can't be checked properly + ;; because flyspell-get-word finds + ;; just part of it, and treat that as ok. + (if (< (length (flyspell-get-word following)) + (length word)) + nil + (flyspell-word)))) (error "Bug: misspelled word `%s' (output pos %d) not found in buffer" word wordpos))))))) ;; we are done