diff --git a/src/Make_vms.mms b/src/Make_vms.mms
index 2eff6a6..9159496 100644
--- a/src/Make_vms.mms
+++ b/src/Make_vms.mms
@@ -256,11 +256,6 @@
 .ENDIF
 .ENDIF
 
-.IFDEF VIM_TAG_ANYWHITE
-# TAG_ANYWHITE related setup.
-TAG_DEF = ,"FEAT_TAG_ANYWHITE"
-.ENDIF
-
 .IFDEF VIM_MZSCHEME
 # MZSCHEME related setup
 MZSCH_DEF = ,"FEAT_MZSCHEME"
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 81264bd..2f75cbf 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -6533,9 +6533,6 @@
 #ifdef FEAT_TAG_OLDSTATIC
 	"tag_old_static",
 #endif
-#ifdef FEAT_TAG_ANYWHITE
-	"tag_any_white",
-#endif
 #ifdef FEAT_TCL
 # ifndef DYNAMIC_TCL
 	"tcl",
diff --git a/src/feature.h b/src/feature.h
index e16fc62..63b5536 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -313,12 +313,6 @@
 #endif
 
 /*
- * +tag_any_white	Allow any white space to separate the fields in a tags
- *			file.  When not defined, only a TAB is allowed.
- */
-/* #define FEAT_TAG_ANYWHITE */
-
-/*
  * +cscope		Unix only: Cscope support.
  */
 #if defined(UNIX) && defined(FEAT_BIG) && !defined(FEAT_CSCOPE) && !defined(MACOS_X)
diff --git a/src/tag.c b/src/tag.c
index 9dde6a9..9e270a2 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -1931,13 +1931,8 @@
 	    {
 		vim_memset(&tagp, 0, sizeof(tagp));
 		tagp.tagname = lbuf;
-#ifdef FEAT_TAG_ANYWHITE
-		tagp.tagname_end = skiptowhite(lbuf);
-		if (*tagp.tagname_end == NUL)
-#else
 		tagp.tagname_end = vim_strchr(lbuf, TAB);
 		if (tagp.tagname_end == NULL)
-#endif
 		{
 		    if (vim_strchr(lbuf, NL) == NULL)
 		    {
@@ -1976,20 +1971,11 @@
 		    if (*p == ':')
 		    {
 			if (tagp.fname == NULL)
-# ifdef FEAT_TAG_ANYWHITE
-			    tagp.fname = skipwhite(tagp.tagname_end);
-# else
 			    tagp.fname = tagp.tagname_end + 1;
-# endif
-			if (	   fnamencmp(lbuf, tagp.fname, p - lbuf) == 0
-# ifdef FEAT_TAG_ANYWHITE
-				&& VIM_ISWHITE(tagp.fname[p - lbuf])
-# else
-				&& tagp.fname[p - lbuf] == TAB
-# endif
-				    )
+			if (fnamencmp(lbuf, tagp.fname, p - lbuf) == 0
+						&& tagp.fname[p - lbuf] == TAB)
 			{
-			    /* found one */
+			    // found one
 			    tagp.tagname = p + 1;
 			    break;
 			}
@@ -2112,20 +2098,10 @@
 #ifdef FEAT_TAG_OLDSTATIC
 		if (tagp.fname == NULL)
 #endif
-#ifdef FEAT_TAG_ANYWHITE
-		    tagp.fname = skipwhite(tagp.tagname_end);
-#else
 		    tagp.fname = tagp.tagname_end + 1;
-#endif
-#ifdef FEAT_TAG_ANYWHITE
-		tagp.fname_end = skiptowhite(tagp.fname);
-		tagp.command = skipwhite(tagp.fname_end);
-		if (*tagp.command == NUL)
-#else
 		tagp.fname_end = vim_strchr(tagp.fname, TAB);
 		tagp.command = tagp.fname_end + 1;
 		if (tagp.fname_end == NULL)
-#endif
 		    i = FAIL;
 		else
 		    i = OK;
@@ -2843,41 +2819,25 @@
     else	/* not an Emacs tag */
     {
 #endif
-	/* Isolate the tagname, from lbuf up to the first white */
+	// Isolate the tagname, from lbuf up to the first white
 	tagp->tagname = lbuf;
-#ifdef FEAT_TAG_ANYWHITE
-	p = skiptowhite(lbuf);
-#else
 	p = vim_strchr(lbuf, TAB);
 	if (p == NULL)
 	    return FAIL;
-#endif
 	tagp->tagname_end = p;
 
-	/* Isolate file name, from first to second white space */
-#ifdef FEAT_TAG_ANYWHITE
-	p = skipwhite(p);
-#else
+	// Isolate file name, from first to second white space
 	if (*p != NUL)
 	    ++p;
-#endif
 	tagp->fname = p;
-#ifdef FEAT_TAG_ANYWHITE
-	p = skiptowhite(p);
-#else
 	p = vim_strchr(p, TAB);
 	if (p == NULL)
 	    return FAIL;
-#endif
 	tagp->fname_end = p;
 
-	/* find start of search command, after second white space */
-#ifdef FEAT_TAG_ANYWHITE
-	p = skipwhite(p);
-#else
+	// find start of search command, after second white space
 	if (*p != NUL)
 	    ++p;
-#endif
 	if (*p == NUL)
 	    return FAIL;
 	tagp->command = p;
diff --git a/src/version.c b/src/version.c
index ddc30c0..59ffe0e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -610,11 +610,7 @@
 #else
 	"-tag_old_static",
 #endif
-#ifdef FEAT_TAG_ANYWHITE
-	"+tag_any_white",
-#else
 	"-tag_any_white",
-#endif
 #ifdef FEAT_TCL
 # ifdef DYNAMIC_TCL
 	"+tcl/dyn",
@@ -780,6 +776,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1040,
+/**/
     1039,
 /**/
     1038,
