updated for version 7.3.551
Problem:    When using :tablose a TabEnter autocommand is triggered too early.
            (Karthick)
Solution:   Don't trigger *Enter autocommands before closing the tab.
            (Christian Brabandt)
diff --git a/src/eval.c b/src/eval.c
index b0e4b31..d238dc2 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -16415,7 +16415,7 @@
     if (tp != NULL && varname != NULL && varp != NULL)
     {
 	save_curtab = curtab;
-	goto_tabpage_tp(tp);
+	goto_tabpage_tp(tp, TRUE);
 
 	tabvarname = alloc((unsigned)STRLEN(varname) + 3);
 	if (tabvarname != NULL)
@@ -16428,7 +16428,7 @@
 
 	/* Restore current tabpage */
 	if (valid_tabpage(save_curtab))
-	    goto_tabpage_tp(save_curtab);
+	    goto_tabpage_tp(save_curtab, TRUE);
     }
 }
 
@@ -16492,7 +16492,7 @@
 	/* set curwin to be our win, temporarily */
 	save_curwin = curwin;
 	save_curtab = curtab;
-	goto_tabpage_tp(tp);
+	goto_tabpage_tp(tp, TRUE);
 	if (!win_valid(win))
 	    return;
 	curwin = win;
@@ -16527,7 +16527,7 @@
 	/* Restore current tabpage and window, if still valid (autocomands can
 	 * make them invalid). */
 	if (valid_tabpage(save_curtab))
-	    goto_tabpage_tp(save_curtab);
+	    goto_tabpage_tp(save_curtab, TRUE);
 	if (win_valid(save_curwin))
 	{
 	    curwin = save_curwin;