diff --git a/src/buffer.c b/src/buffer.c
index 257ae7d..c42dece 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -45,10 +45,6 @@
 static void	free_buffer(buf_T *);
 static void	free_buffer_stuff(buf_T *buf, int free_options);
 static void	clear_wininfo(buf_T *buf);
-#if defined(FEAT_JOB_CHANNEL) \
-	|| defined(FEAT_PYTHON) || defined(FEAT_PYTHON3)
-static int	find_win_for_buf(buf_T *buf, win_T **wp, tabpage_T **tp);
-#endif
 
 #ifdef UNIX
 # define dev_T dev_t
@@ -5457,7 +5453,24 @@
 #if defined(FEAT_JOB_CHANNEL) \
 	|| defined(FEAT_PYTHON) || defined(FEAT_PYTHON3) \
 	|| defined(PROTO)
-# define SWITCH_TO_WIN
+/*
+ * Find a window for buffer "buf".
+ * If found OK is returned and "wp" and "tp" are set to the window and tabpage.
+ * If not found FAIL is returned.
+ */
+    static int
+find_win_for_buf(
+    buf_T     *buf,
+    win_T     **wp,
+    tabpage_T **tp)
+{
+    FOR_ALL_TAB_WINDOWS(*tp, *wp)
+	if ((*wp)->w_buffer == buf)
+	    goto win_found;
+    return FAIL;
+win_found:
+    return OK;
+}
 
 /*
  * Find a window that contains "buf" and switch to it.
@@ -5497,27 +5510,6 @@
 }
 #endif
 
-#if defined(FEAT_QUICKFIX) || defined(SWITCH_TO_WIN) || defined(PROTO)
-/*
- * Find a window for buffer "buf".
- * If found OK is returned and "wp" and "tp" are set to the window and tabpage.
- * If not found FAIL is returned.
- */
-    static int
-find_win_for_buf(
-    buf_T     *buf,
-    win_T     **wp,
-    tabpage_T **tp)
-{
-    FOR_ALL_TAB_WINDOWS(*tp, *wp)
-	if ((*wp)->w_buffer == buf)
-	    goto win_found;
-    return FAIL;
-win_found:
-    return OK;
-}
-#endif
-
 /*
  * Set 'buflisted' for curbuf to "on" and trigger autocommands if it changed.
  */
diff --git a/src/popupmnu.c b/src/popupmnu.c
index c25cff2..da70c5f 100644
--- a/src/popupmnu.c
+++ b/src/popupmnu.c
@@ -760,8 +760,9 @@
 # else
 #  define use_popup 0
 # endif
+# ifdef FEAT_TEXT_PROP
 	    has_info = TRUE;
-
+# endif
 	    // Open a preview window.  3 lines by default.  Prefer
 	    // 'previewheight' if set and smaller.
 	    g_do_tagpreview = 3;
diff --git a/src/proto.h b/src/proto.h
index 05a7cf8..cc31726 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -181,9 +181,7 @@
 # if defined(FEAT_PROFILE) || defined(FEAT_RELTIME)
 # include "profiler.pro"
 # endif
-# ifdef FEAT_QUICKFIX
-#  include "quickfix.pro"
-# endif
+# include "quickfix.pro"
 # include "regexp.pro"
 # include "scriptfile.pro"
 # include "screen.pro"
diff --git a/src/quickfix.c b/src/quickfix.c
index 7f13cb6..136c472 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -3381,9 +3381,7 @@
     int			prev_winid;
     int			opened_window = FALSE;
     int			print_message = TRUE;
-#ifdef FEAT_FOLDING
     int			old_KeyTyped = KeyTyped; // getting file may reset it
-#endif
     int			retval = OK;
 
     if (qi == NULL)
@@ -3427,7 +3425,7 @@
 	goto theend;
 
     retval = qf_jump_to_buffer(qi, qf_index, qf_ptr, forceit, prev_winid,
-	    &opened_window, old_KeyTyped, print_message);
+				  &opened_window, old_KeyTyped, print_message);
     if (retval == NOTDONE)
     {
 	// Quickfix/location list is freed by an autocmd
diff --git a/src/ui.c b/src/ui.c
index a072359..1b700f1 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -3637,6 +3637,8 @@
 	|| defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MSWIN) \
 	|| defined(FEAT_GUI_PHOTON) || defined(FEAT_TERM_POPUP_MENU) \
 	|| defined(PROTO)
+# define NEED_VCOL2COL
+
 /*
  * Translate window coordinates to buffer position without any side effects
  */
@@ -3678,10 +3680,8 @@
 }
 #endif
 
-#if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MAC) \
-	|| defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MSWIN) \
-	|| defined(FEAT_GUI_PHOTON) || defined(FEAT_BEVAL) \
-	|| defined(FEAT_TERM_POPUP_MENU) || defined(PROTO)
+#if defined(NEED_VCOL2COL) || defined(FEAT_BEVAL) || defined(FEAT_TEXT_PROP) \
+	|| defined(PROTO)
 /*
  * Convert a virtual (screen) column to a character column.
  * The first column is one.
diff --git a/src/version.c b/src/version.c
index 7b3fff0..85526b6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1971,
+/**/
     1970,
 /**/
     1969,
