patch 7.4.2023
Problem:    buflist_findname_stat() may find a dummy buffer.
Solution:   Set the BF_DUMMY flag after loading a dummy buffer.  Start
            finding buffers from the end of the list.
diff --git a/src/buffer.c b/src/buffer.c
index 409564b..903a94a 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2270,7 +2270,8 @@
 #endif
     buf_T	*buf;
 
-    for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+    /* Start at the last buffer, expect to find a match sooner. */
+    for (buf = lastbuf; buf != NULL; buf = buf->b_prev)
 	if ((buf->b_flags & BF_DUMMY) == 0 && !otherfile_buf(buf, ffname
 #ifdef UNIX
 		    , stp
@@ -2355,7 +2356,7 @@
 		    return -1;
 		}
 
-		for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+		for (buf = lastbuf; buf != NULL; buf = buf->b_prev)
 		    if (buf->b_p_bl == find_listed
 #ifdef FEAT_DIFF
 			    && (!diffmode || diff_mode_buf(buf))
@@ -2581,7 +2582,8 @@
 
     if (nr == 0)
 	nr = curwin->w_alt_fnum;
-    for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+    /* Assume newer buffers are used more often, start from the end. */
+    for (buf = lastbuf; buf != NULL; buf = buf->b_prev)
 	if (buf->b_fnum == nr)
 	    return buf;
     return NULL;