diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el index 11da3b68e75..371037312e2 100644 --- a/lisp/dabbrev.el +++ b/lisp/dabbrev.el @@ -768,14 +768,16 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]." (append dabbrev--friend-buffer-list non-friend-buffer-list))))) ;; Move buffers that are visible on the screen - ;; to the front of the list. - (if dabbrev--friend-buffer-list - (let ((w (next-window (selected-window)))) - (while (not (eq w (selected-window))) - (setq dabbrev--friend-buffer-list - (cons (window-buffer w) - (delq (window-buffer w) dabbrev--friend-buffer-list))) - (setq w (next-window w))))) + ;; to the front of the list. Remove the current buffer. + (when dabbrev--friend-buffer-list + (let ((w (next-window (selected-window)))) + (while (not (eq w (selected-window))) + (setq dabbrev--friend-buffer-list + (cons (window-buffer w) + (delq (window-buffer w) dabbrev--friend-buffer-list))) + (setq w (next-window w)))) + (setq dabbrev--friend-buffer-list + (delq (current-buffer) dabbrev--friend-buffer-list))) ;; Walk through the buffers (while (and (not expansion) dabbrev--friend-buffer-list) (setq dabbrev--last-buffer