diff --git a/src/popupmenu.c b/src/popupmenu.c
index 11dd186..f11ae94 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -429,7 +429,7 @@
 						    / (pum_size - pum_height);
     }
 
-#ifdef FEAT_TEXT_PROP
+#ifdef FEAT_PROP_POPUP
     // The popup menu is drawn over popup menus with zindex under
     // POPUPMENU_ZINDEX.
     screen_zindex = POPUPMENU_ZINDEX;
@@ -616,12 +616,12 @@
 	++row;
     }
 
-#ifdef FEAT_TEXT_PROP
+#ifdef FEAT_PROP_POPUP
     screen_zindex = 0;
 #endif
 }
 
-#if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
+#if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
 /*
  * Position the info popup relative to the popup menu item.
  */
@@ -683,7 +683,7 @@
 #ifdef FEAT_QUICKFIX
     int	    prev_selected = pum_selected;
 #endif
-#ifdef FEAT_TEXT_PROP
+#ifdef FEAT_PROP_POPUP
     int	    has_info = FALSE;
 #endif
 
@@ -758,12 +758,12 @@
 	    win_T	*curwin_save = curwin;
 	    tabpage_T   *curtab_save = curtab;
 	    int		res = OK;
-# ifdef FEAT_TEXT_PROP
+# ifdef FEAT_PROP_POPUP
 	    use_popup_T	use_popup;
 # else
 #  define use_popup USEPOPUP_NONE
 # endif
-# ifdef FEAT_TEXT_PROP
+# ifdef FEAT_PROP_POPUP
 	    has_info = TRUE;
 	    if (strstr((char *)p_cot, "popuphidden") != NULL)
 		use_popup = USEPOPUP_HIDDEN;
@@ -787,7 +787,7 @@
 	    g_do_tagpreview = 0;
 
 	    if (curwin->w_p_pvw
-# ifdef FEAT_TEXT_PROP
+# ifdef FEAT_PROP_POPUP
 		    || (curwin->w_popup_flags & POPF_INFO)
 # endif
 		    )
@@ -862,7 +862,7 @@
 		    curbuf->b_p_ma = FALSE;
 		    if (pum_selected != prev_selected)
 		    {
-# ifdef FEAT_TEXT_PROP
+# ifdef FEAT_PROP_POPUP
 			curwin->w_firstline = 1;
 # endif
 			curwin->w_topline = 1;
@@ -871,7 +871,7 @@
 			curwin->w_topline = curbuf->b_ml.ml_line_count;
 		    curwin->w_cursor.lnum = curwin->w_topline;
 		    curwin->w_cursor.col = 0;
-# ifdef FEAT_TEXT_PROP
+# ifdef FEAT_PROP_POPUP
 		    if (use_popup != USEPOPUP_NONE)
 		    {
 			pum_position_info_popup(curwin);
@@ -916,13 +916,13 @@
 
 			if (!resized && win_valid(curwin_save))
 			{
-# ifdef FEAT_TEXT_PROP
+# ifdef FEAT_PROP_POPUP
 			    win_T *wp = curwin;
 # endif
 			    ++no_u_sync;
 			    win_enter(curwin_save, TRUE);
 			    --no_u_sync;
-# ifdef FEAT_TEXT_PROP
+# ifdef FEAT_PROP_POPUP
 			    if (use_popup == USEPOPUP_HIDDEN && win_valid(wp))
 				popup_hide(wp);
 # endif
@@ -937,7 +937,7 @@
 		    }
 		}
 	    }
-# if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
+# if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
 	    if (WIN_IS_POPUP(curwin))
 		// can't keep focus in a popup window
 		win_enter(firstwin, TRUE);
@@ -945,7 +945,7 @@
 	}
 #endif
     }
-#if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
+#if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
     if (!has_info)
 	// hide any popup info window
 	popup_hide_info();
@@ -967,7 +967,7 @@
     redraw_all_later(NOT_VALID);
     redraw_tabline = TRUE;
     status_redraw_all();
-#if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
+#if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
     // hide any popup info window
     popup_hide_info();
 #endif
