On Tue, 17 Jan 2012 10:05:29 -0800, Jameson Graef Rollins wrote: > -(defun notmuch-show-next-open-message () > +(defun notmuch-show-next-open-message (&optional pop-at-end) > "Show the next message." > (interactive) > - (let (r) > + (let ((r) > + (parent-buffer notmuch-show-parent-buffer)) No need for brackets around `r'. Please put initialised local variables before uninitialised. > (while (and (setq r (notmuch-show-goto-message-next)) > (not (notmuch-show-message-visible-p)))) > (if r > (progn > (notmuch-show-mark-read) > (notmuch-show-message-adjust)) > - (goto-char (point-max))))) > + (if (and parent-buffer pop-at-end) > + (progn > + (kill-this-buffer) > + (switch-to-buffer parent-buffer) > + (forward-line 1)) > + (goto-char (point-max)))))) Can you explain in words how this is expected to behave please?