(defun elpher-menu (&optional arg)
   "Show a list of all your `elpher' buffers.
 With an optional argument, add all the history items, too."
-  (interactive)
+  (interactive "P")
   (switch-to-buffer (get-buffer-create "*Elpher Menu*"))
   (elpher-menu-mode)
   (elpher-menu-refresh arg)
       (dolist (buf (buffer-list))
        (with-current-buffer buf
          (when (memq major-mode '(elpher-mode eww-mode))
-           (setq entries
-                 (nconc (if arg
-                            (elpher-menu-refresh-current)
-                          (elpher-menu-refresh-history))
-                        entries)))))
+           (if arg
+               (setq entries (nconc (elpher-menu-refresh-history) entries))
+             (push (elpher-menu-refresh-current) entries)))))
       (setq tabulated-list-entries (nreverse entries)))
     (tabulated-list-init-header))
 
   "Return current entries for `elpher-menu-refresh'.
 If we're only interested in the current entries, then this
 function can only return a list of a single item per buffer."
-  (list buf
+  (list (current-buffer)
        (vector
         (cond ((eq major-mode 'elpher-mode) "E")
               ((eq major-mode 'eww-mode) "W"))