>>>>> "Simon" == Simon Josefsson writes: > Thanks for the reference. I'm not sure about your patch -- it > appears wrong to look for /1msg. I think the right fix would be > to fix the code so that smtpmail.el doesn't hang forever waiting > for response to QUIT. So it should work without detecting > "/1msg". Agreed! :-) > Does this patch help? If not, can you pinpoint exactly > where does smtpmail.el hang, using (setq debug-on-quit t) and > pressing C-g when it spins? The patch didn't help, and here's the backtrace from C-g: --SNIP-- Debugger entered--Lisp error: (quit) accept-process-output(#) smtpmail-read-response(#) byte-code("ƒ rÂ!qˆÃÄ\"ˆÅ!ˆÆ!ˆ „Ç\n!ˆ)‡" [process smtpmail-debug-info process-buffer smtpmail-send-command "QUIT" smtpmail-read-response delete-process kill-buffer] 3) smtpmail-via-smtp((#("jglauner@sbum.org" 0 17 (fontified nil))) #>) smtpmail-send-it() mail-send() vm-mail-send() vm-mail-send-and-exit(nil) call-interactively(vm-mail-send-and-exit) recursive-edit() byte-code("ÆÇ !ˆÈ ˆÉ\n!ˆ ƒBÊed\"\fVƒ6ebˆË\f¥yˆ`dbˆË\f¥\fZyˆ `|ˆ)ÌcˆebˆÍÎÏ \"ˆÐ ˆ\n@Ñ=ƒNÒÓÔ\"ˆÕ ˆÍÖ!ˆÔ×ÔÍÖ!ˆŠØ ˆ,ׇ" [unread-command-char debugger-buffer debugger-args noninteractive debugger-batch-max-lines middlestart -1 pop-to-buffer debugger-mode debugger-setup-buffer count-lines 2 "...\n" message "%s" buffer-string kill-emacs debug backtrace-debug 3 t debugger-reenable "" nil recursive-edit buffer-read-only standard-output inhibit-trace] 3) debug(error (quit)) smtpmail-read-response(#) byte-code("ƒ rÂ!qˆÃÄ\"ˆÅ!ˆÆ!ˆ „Ç\n!ˆ)‡" [process smtpmail-debug-info process-buffer smtpmail-send-command "QUIT" smtpmail-read-response delete-process kill-buffer] 3) smtpmail-via-smtp((#("jglauner@sbum.org" 0 17 (fontified nil))) #) smtpmail-send-it() mail-send() vm-mail-send() vm-mail-send-and-exit(nil) call-interactively(vm-mail-send-and-exit) recursive-edit() byte-code("ÆÇ !ˆÈ ˆÉ\n!ˆ ƒBÊed\"\fVƒ6ebˆË\f¥yˆ`dbˆË\f¥\fZyˆ `|ˆ)ÌcˆebˆÍÎÏ \"ˆÐ ˆ\n@Ñ=ƒNÒÓÔ\"ˆÕ ˆÍÖ!ˆÔ×ÔÍÖ!ˆŠØ ˆ,ׇ" [unread-command-char debugger-buffer debugger-args noninteractive debugger-batch-max-lines middlestart -1 pop-to-buffer debugger-mode debugger-setup-buffer count-lines 2 "...\n" message "%s" buffer-string kill-emacs debug backtrace-debug 3 t debugger-reenable "" nil recursive-edit buffer-read-only standard-output inhibit-trace] 3) debug(error (void-function debug-on-quit)) (debug-on-quit t) eval((debug-on-quit t)) eval-expression((debug-on-quit t) nil) call-interactively(eval-expression) --SNIP-- Unfortunately, since process no longer exists (at least from the server's point of view) it's just going to sit there, as near as I can tell. Is there some way to double-check that the process really still exists? Thanks for your help! --Jonathan