On Thu Oct 12 10:51:51 2006 +0100, Carsten Dominik wrote: I can reproduce this under Emacs 22, but I have not been able to figure out what is causing this, because Emacs hangs so that it cannot even be stopped with C-g. It seems to be caused by links which contain hidden and intangible text. Don't really know where to go from here. - Carsten On Thu Oct 12 17:29:46 2006 +0100, Carsten Dominik wrote: > Do you mind if I forward my original bug report and your comments in > this email to emacs-devel list? > Not at all. Additional info: This seems to happen when the cursor gets into the white space after a link. Emacs gets stuck in accept-process-output' from the ispell process. That call is wrapped into with-local-quit, which may have to do with the fact that this cannot be exited with keyboard-quit. The work ispell is supposed to be looking up is "uk", and the word is extracted from the buffer without text properties, so the fact that I am using intangible and invisible text properties should not play a role with this. In fact, I have no idea what might be causing this, but I don't see how org-mode could be the true reason. Here is the backtrace from just before the hangup. When I press "d", emacs will get stuck. Debugger entered--beginning evaluation of function call form: * (accept-process-output ispell-process) * (progn (accept-process-output ispell-process) (not (string= "" ...))) * (while (progn (accept-process-output ispell-process) (not ...))) * (let ((inhibit-quit nil)) (while (progn ... ...))) * (condition-case nil (let (...) (while ...)) (quit (setq quit-flag t) (eval ...))) * (with-local-quit (while (progn ... ...))) * (cond ((and ... flyspell-mark-duplications-flag ...) (flyspell-highlight-incorrect-region start end ...) nil) ((and ... ... ...) flyspell-word-cache-result) ((and ... ...) (flyspell-unhighlight-at start) (if ... ...) t) (t (setq flyspell-word-cache-start start) (setq flyspell-word-cache-end end) (setq flyspell-word-cache-word word) (ispell-send-string "%\n") (ispell-send-string ...) (set-process-query-on-exit-flag ispell-process nil) (with-local-quit ...) (setq ispell-filter ...) (or ispell-filter ...) (if ... ...) (let ... ... ... res))) * (progn (setq start (car ...) end (car ...) word (car flyspell-word)) (cond (... ... nil) (... flyspell-word-cache-result) (... ... ... t) (t ... ... ... ... ... ... ... ... ... ... ...))) * (if (or (eq flyspell-word nil) (and ... ...)) t (progn (setq start ... end ... word ...) (cond ... ... ... ...))) * (let* ((cursor-location ...) (flyspell-word ...) start end poss word ispell-filter) (if (or ... ...) t (progn ... ...))) * (save-excursion (flyspell-accept-buffer-local-defs) (let* (... ... start end poss word ispell-filter) (if ... t ...))) * flyspell-word() * (progn (quote (flyspell-debug-signal-word-checked)) (flyspell-word) (setq flyspell-pre-pre-buffer (current-buffer)) (setq flyspell-pre-pre-point (point))) * (if (flyspell-check-word-p) (progn (quote ...) (flyspell-word) (setq flyspell-pre-pre-buffer ...) (setq flyspell-pre-pre-point ...)) (progn (setq flyspell-pre-pre-buffer nil) (setq flyspell-pre-pre-point nil) (if ... ...))) * (let ((command this-command) deactivate-mark) (if (flyspell-check-pre-word-p) (with-current-buffer flyspell-pre-buffer ... ...)) (if (flyspell-check-word-p) (progn ... ... ... ...) (progn ... ... ...)) (while (and ... ...) (let ... ... ...)) (setq flyspell-previous-command command)) * flyspell-post-command-hook() * run-hooks(post-command-hook) -- Leo