diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 1152a18a73f3b9bd00360194fce5c7abd436bda2..71a7fa1801a4796d48e30df3ef623cd12d5a4f20 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7980,8 +7980,10 @@ ex_wincmd(eap)
     {
 	/* Pass flags on for ":vertical wincmd ]". */
 	postponed_split_flags = cmdmod.split;
+	postponed_split_tab = cmdmod.tab;
 	do_window(*eap->arg, eap->addr_count > 0 ? eap->line2 : 0L, xchar);
 	postponed_split_flags = 0;
+	postponed_split_tab = 0;
     }
 }
 #endif
@@ -9189,8 +9191,10 @@ ex_stag(eap)
 {
     postponed_split = -1;
     postponed_split_flags = cmdmod.split;
+    postponed_split_tab = cmdmod.tab;
     ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1);
     postponed_split_flags = 0;
+    postponed_split_tab = 0;
 }
 #endif
 
diff --git a/src/globals.h b/src/globals.h
index 54785a4f15686450ac67bad76e2c11fd4072bf64..0493e8b8aa7e84699b2428dfe4784bfb65491f75 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1030,6 +1030,7 @@ EXTERN linenr_T	write_no_eol_lnum INIT(= 0); /* non-zero lnum when last line
 #ifdef FEAT_WINDOWS
 EXTERN int	postponed_split INIT(= 0);  /* for CTRL-W CTRL-] command */
 EXTERN int	postponed_split_flags INIT(= 0);  /* args for win_split() */
+EXTERN int	postponed_split_tab INIT(= 0);  /* cmdmod.tab */
 # ifdef FEAT_QUICKFIX
 EXTERN int	g_do_tagpreview INIT(= 0);  /* for tag preview commands:
 					       height of preview window */
diff --git a/src/if_cscope.c b/src/if_cscope.c
index fd831393a259d45ecbacb604c382c834a955b74a..3e430168fe1de3172a927a7a864fe48a3e6bf5df 100644
--- a/src/if_cscope.c
+++ b/src/if_cscope.c
@@ -128,6 +128,7 @@ do_cscope_general(eap, make_split)
 	}
 	postponed_split = -1;
 	postponed_split_flags = cmdmod.split;
+	postponed_split_tab = cmdmod.tab;
     }
 #endif
 
@@ -135,6 +136,7 @@ do_cscope_general(eap, make_split)
 
 #ifdef FEAT_WINDOWS
     postponed_split_flags = 0;
+    postponed_split_tab = 0;
 #endif
 }
 
diff --git a/src/version.c b/src/version.c
index d577c50b310ed856f69f95440d98ff54a1d684dc..1517d0a1dc99c69bfdebbf55bb3aadebf0a6927d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -666,6 +666,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    216,
 /**/
     215,
 /**/
diff --git a/src/window.c b/src/window.c
index aa4d26a0bb7cd988f357200ae9d23718b8da7259..40aa2f062bf64bf4eb30a1459ba4cdda45af5c50 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3290,11 +3290,12 @@ win_new_tabpage(after)
     int
 may_open_tabpage()
 {
-    int		n = cmdmod.tab;
+    int		n = (cmdmod.tab == 0) ? postponed_split_tab : cmdmod.tab;
 
-    if (cmdmod.tab != 0)
+    if (n != 0)
     {
 	cmdmod.tab = 0;	    /* reset it to avoid doing it twice */
+	postponed_split_tab = 0;
 	return win_new_tabpage(n);
     }
     return FAIL;