diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 9576668..78f2bcc 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2953,7 +2953,7 @@
 	topline = curwin->w_topline;
 	if (!oldbuf)			    /* need to read the file */
 	{
-#ifdef FEAT_TEXT_PROP
+#ifdef FEAT_PROP_POPUP
 	    // Don't use the swap-exists dialog for a popup window, can't edit
 	    // the buffer.
 	    if (WIN_IS_POPUP(curwin))
@@ -2972,7 +2972,7 @@
 	    (void)open_buffer(FALSE, eap, readfile_flags);
 #endif
 
-#ifdef FEAT_TEXT_PROP
+#ifdef FEAT_PROP_POPUP
 	    curbuf->b_flags &= ~BF_NO_SEA;
 #endif
 	    if (swap_exists_action == SEA_QUIT)
@@ -3016,7 +3016,7 @@
 #ifdef FEAT_TITLE
 	maketitle();
 #endif
-#ifdef FEAT_TEXT_PROP
+#ifdef FEAT_PROP_POPUP
 	if (WIN_IS_POPUP(curwin) && curwin->w_p_pvw && retval != FAIL)
 	    popup_set_title(curwin);
 #endif
@@ -3900,7 +3900,7 @@
 	    int		do_again;	/* do it again after joining lines */
 	    int		skip_match = FALSE;
 	    linenr_T	sub_firstlnum;	/* nr of first sub line */
-#ifdef FEAT_TEXT_PROP
+#ifdef FEAT_PROP_POPUP
 	    int		apc_flags = APC_SAVE_FOR_UNDO | APC_SUBSTITUTE;
 	    colnr_T	total_added =  0;
 #endif
@@ -4317,7 +4317,7 @@
 		if (nmatch == 1)
 		{
 		    p1 = sub_firstline;
-#ifdef FEAT_TEXT_PROP
+#ifdef FEAT_PROP_POPUP
 		    if (curbuf->b_has_textprop)
 		    {
 			int bytes_added = sublen - 1 - (regmatch.endpos[0].col
@@ -4435,7 +4435,7 @@
 		    if (p1[0] == '\\' && p1[1] != NUL)  /* remove backslash */
 		    {
 			STRMOVE(p1, p1 + 1);
-#ifdef FEAT_TEXT_PROP
+#ifdef FEAT_PROP_POPUP
 			if (curbuf->b_has_textprop)
 			{
 			    // When text properties are changed, need to save
@@ -4464,7 +4464,7 @@
 				    first_line = lnum;
 				last_line = lnum + 1;
 			    }
-#ifdef FEAT_TEXT_PROP
+#ifdef FEAT_PROP_POPUP
 			    adjust_props_for_split(lnum + 1, lnum, plen, 1);
 #endif
 			    // all line numbers increase
@@ -4993,7 +4993,7 @@
      */
     if (!curwin->w_p_pvw)
     {
-# ifdef FEAT_TEXT_PROP
+# ifdef FEAT_PROP_POPUP
 	if (use_previewpopup && *p_pvp != NUL)
 	{
 	    wp = popup_find_preview_window();
@@ -5028,7 +5028,7 @@
 	    /*
 	     * There is no preview window open yet.  Create one.
 	     */
-# ifdef FEAT_TEXT_PROP
+# ifdef FEAT_PROP_POPUP
 	    if ((use_previewpopup && *p_pvp != NUL)
 						 || use_popup != USEPOPUP_NONE)
 		return popup_create_preview_window(use_popup != USEPOPUP_NONE);
