diff --git a/src/option.c b/src/option.c
index 69d2727..8d9b578 100644
--- a/src/option.c
+++ b/src/option.c
@@ -894,7 +894,7 @@
 #endif
 			    SCTX_INIT},
     {"completepopup", "cpp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
-#ifdef FEAT_TEXT_PROP
+#if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
 			    (char_u *)&p_cpp, PV_NONE,
 			    {(char_u *)"", (char_u *)0L}
 #else
@@ -7830,12 +7830,14 @@
 	if (parse_previewpopup(NULL) == FAIL)
 	    errmsg = e_invarg;
     }
+# ifdef FEAT_QUICKFIX
     // 'completepopup'
     else if (varp == &p_cpp)
     {
 	if (parse_completepopup(NULL) == FAIL)
 	    errmsg = e_invarg;
     }
+# endif
 #endif
 
     /* Options that are a list of flags. */
diff --git a/src/option.h b/src/option.h
index 0461a64..0ccf8f1 100644
--- a/src/option.h
+++ b/src/option.h
@@ -503,7 +503,9 @@
 #endif
 EXTERN int	p_gd;		// 'gdefault'
 #ifdef FEAT_TEXT_PROP
+# ifdef FEAT_QUICKFIX
 EXTERN char_u	*p_cpp;		// 'completepopup'
+# endif
 EXTERN char_u	*p_pvp;		// 'previewpopup'
 #endif
 #ifdef FEAT_PRINTER
diff --git a/src/popupwin.c b/src/popupwin.c
index a892bb6..99a40af 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -1294,9 +1294,13 @@
     static int
 parse_popup_option(win_T *wp, int is_preview)
 {
-    char_u *p;
+    char_u *p =
+#ifdef FEAT_QUICKFIX
+	!is_preview ? p_cpp :
+#endif
+	p_pvp;
 
-    for (p = is_preview ? p_pvp : p_cpp; *p != NUL; p += (*p == ',' ? 1 : 0))
+    for ( ; *p != NUL; p += (*p == ',' ? 1 : 0))
     {
 	char_u	*e, *dig;
 	char_u	*s = p;
@@ -1674,6 +1678,7 @@
 	parse_previewpopup(wp);
 	popup_set_wantpos_cursor(wp, wp->w_minwidth);
     }
+# ifdef FEAT_QUICKFIX
     if (type == TYPE_INFO)
     {
 	wp->w_popup_pos = POPPOS_TOPLEFT;
@@ -1682,6 +1687,7 @@
 	add_border_left_right_padding(wp);
 	parse_completepopup(wp);
     }
+# endif
 
     for (i = 0; i < 4; ++i)
 	VIM_CLEAR(wp->w_border_highlight[i]);
@@ -3257,6 +3263,7 @@
     return wp->w_popup_flags != 0;
 }
 
+#if defined(FEAT_QUICKFIX) || defined(PROTO)
 /*
  * Find an existing popup used as the info window, in the current tab page.
  * Return NULL if not found.
@@ -3272,6 +3279,7 @@
 	    return wp;
     return NULL;
 }
+#endif
 
     void
 f_popup_getpreview(typval_T *argvars UNUSED, typval_T *rettv)
@@ -3314,6 +3322,7 @@
     return OK;
 }
 
+#if defined(FEAT_QUICKFIX) || defined(PROTO)
     void
 popup_close_preview(int info)
 {
@@ -3328,6 +3337,7 @@
 	popup_close_and_callback(wp, &res);
     }
 }
+#endif
 
 /*
  * Set the title of the popup window to the file name.
diff --git a/src/version.c b/src/version.c
index 895b4ff..5d802fd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -766,6 +766,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1892,
+/**/
     1891,
 /**/
     1890,
