diff --git a/src/buffer.c b/src/buffer.c
index 1f1833fc7..27185750e 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5626,6 +5626,15 @@ write_viminfo_bufferlist(FILE *fp)
 }
 #endif
 
+/*
+ * Return TRUE if "buf" is a normal buffer.
+ */
+    int
+bt_normal(buf_T *buf)
+{
+    return buf != NULL && buf->b_p_bt[0] == NUL;
+}
+
 /*
  * Return TRUE if "buf" is the quickfix buffer.
  */
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 668228621..0539a5114 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -11768,7 +11768,7 @@ put_view(
      */
     if ((*flagp & SSOP_FOLDS)
 	    && wp->w_buffer->b_ffname != NULL
-	    && (*wp->w_buffer->b_p_bt == NUL || bt_help(wp->w_buffer)))
+	    && (bt_normal(wp->w_buffer) || bt_help(wp->w_buffer)))
     {
 	if (put_folds(fd, wp) == FAIL)
 	    return FAIL;
diff --git a/src/fileio.c b/src/fileio.c
index 07b241ece..281191cfb 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -6897,7 +6897,7 @@ buf_check_timestamp(
      * this buffer. */
     if (buf->b_ffname == NULL
 	    || buf->b_ml.ml_mfp == NULL
-	    || *buf->b_p_bt != NUL
+	    || !bt_normal(buf)
 	    || buf->b_saving
 	    || busy
 #ifdef FEAT_NETBEANS_INTG
diff --git a/src/proto/buffer.pro b/src/proto/buffer.pro
index 9e63fb605..6820d9734 100644
--- a/src/proto/buffer.pro
+++ b/src/proto/buffer.pro
@@ -56,6 +56,7 @@ void ex_buffer_all(exarg_T *eap);
 void do_modelines(int flags);
 int read_viminfo_bufferlist(vir_T *virp, int writing);
 void write_viminfo_bufferlist(FILE *fp);
+int bt_normal(buf_T *buf);
 int bt_quickfix(buf_T *buf);
 int bt_terminal(buf_T *buf);
 int bt_help(buf_T *buf);
diff --git a/src/quickfix.c b/src/quickfix.c
index 5c8be634f..4ade84d20 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -2687,7 +2687,7 @@ qf_find_win_with_normal_buf(void)
     win_T	*wp;
 
     FOR_ALL_WINDOWS(wp)
-	if (wp->w_buffer->b_p_bt[0] == NUL)
+	if (bt_normal(wp->w_buffer))
 	    return wp;
 
     return NULL;
@@ -2763,7 +2763,7 @@ qf_goto_win_with_ll_file(win_T *use_win, int qf_fnum, qf_info_T *ll_ref)
 	    win = curwin;
 	    do
 	    {
-		if (win->w_buffer->b_p_bt[0] == NUL)
+		if (bt_normal(win->w_buffer))
 		    break;
 		if (win->w_prev == NULL)
 		    win = lastwin;	/* wrap around the top */
@@ -2820,8 +2820,7 @@ qf_goto_win_with_qfl_file(int qf_fnum)
 	}
 
 	/* Remember a usable window. */
-	if (altwin == NULL && !win->w_p_pvw
-		&& win->w_buffer->b_p_bt[0] == NUL)
+	if (altwin == NULL && !win->w_p_pvw && bt_normal(win->w_buffer))
 	    altwin = win;
     }
 
