Detect when WORD can't be checked properly because
flyspell-get-word finds just part of it, and move on.
(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