diff --git a/mu4e/mu4e-utils.el b/mu4e/mu4e-utils.el index cd4d5b71..6043dd6c 100644 --- a/mu4e/mu4e-utils.el +++ b/mu4e/mu4e-utils.el @@ -856,10 +856,16 @@ When successful, call FUNC (if non-nil) afterwards." ;; kill all mu4e buffers (mapc (lambda (buf) - (with-current-buffer buf - (when (member major-mode - '(mu4e-headers-mode mu4e-view-mode mu4e-main-mode)) - (kill-buffer)))) + ;; When using mu4e-view-use-gnus, the view buffer has the kill-buffer-hook + ;; function mu4e~view-kill-buffer-hook-fn which kills the mm-* buffers + ;; created by Gnus' article mode. Those have been returned by + ;; `buffer-list' but might already be deleted in case the view buffer has + ;; been killed first. So we need a `buffer-live-p' check here. + (when (buffer-live-p buf) + (with-current-buffer buf + (when (member major-mode + '(mu4e-headers-mode mu4e-view-mode mu4e-main-mode)) + (kill-buffer))))) (buffer-list))) (defun mu4e~maildirs-with-query ()