diff --git a/src/structs.h b/src/structs.h
index 55181eb..250dc2f 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -3654,6 +3654,7 @@
     long	    tp_old_Rows;    // Rows when Tab page was left
     long	    tp_old_Columns; // Columns when Tab page was left, -1 when
 				    // calling shell_new_columns() postponed
+    int		    tp_old_coloff;  // Column offset when Tab page was left
     long	    tp_ch_used;	    // value of 'cmdheight' when frame size
 				    // was set
 #ifdef FEAT_GUI
diff --git a/src/tabpanel.c b/src/tabpanel.c
index 260768a..d0f2d15 100644
--- a/src/tabpanel.c
+++ b/src/tabpanel.c
@@ -106,7 +106,6 @@
     tpl_is_vert = new_is_vert;
 
     shell_new_columns();
-    redraw_tabpanel = TRUE;
 
     if (do_equal)
 	win_equal(curwin, FALSE, 0);
diff --git a/src/term.c b/src/term.c
index 6f7983b..c7ac8ab 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3614,8 +3614,10 @@
 {
     static int	old_Rows = 0;
     static int	old_Columns = 0;
+    static int	old_coloff = 0;
 
-    if (old_Rows != Rows || old_Columns != Columns)
+    if (old_Rows != Rows || old_Columns != COLUMNS_WITHOUT_TPL()
+	    || old_coloff != TPL_LCOL(NULL))
 	ui_new_shellsize();
     if (old_Rows != Rows)
     {
@@ -3627,20 +3629,12 @@
 	old_Rows = Rows;
 	shell_new_rows();	// update window sizes
     }
-    if (old_Columns != Columns)
+    if (old_Columns != COLUMNS_WITHOUT_TPL() || old_coloff != TPL_LCOL(NULL))
     {
-	old_Columns = Columns;
+	old_Columns = COLUMNS_WITHOUT_TPL();
+	old_coloff = TPL_LCOL(NULL);
 
-	tabpage_T *save_curtab = curtab;
-	tabpage_T *tp;
-	FOR_ALL_TABPAGES(tp)
-	{
-	    unuse_tabpage(curtab);
-	    use_tabpage(tp);
-	    shell_new_columns();
-	}
-	unuse_tabpage(curtab);
-	use_tabpage(save_curtab);
+	shell_new_columns();
     }
 }
 
diff --git a/src/testdir/dumps/Test_tabpanel_stpl_eq_0_0.dump b/src/testdir/dumps/Test_tabpanel_stpl_eq_0_0.dump
new file mode 100644
index 0000000..8a25711
--- /dev/null
+++ b/src/testdir/dumps/Test_tabpanel_stpl_eq_0_0.dump
@@ -0,0 +1,10 @@
+| +8#0000001#e0e0e08|+| |[|N|o| |N|a|m|e|]| | +2#0000000#ffffff0|0@3| | +1&&@57|X+8#0000001#e0e0e08
+> +0#0000000#ffffff0@77
+|~+0#4040ff13&| @76
+|~| @76
+|~| @76
+|~| @76
+|~| @76
+|~| @76
+|~| @76
+| +0#0000000&@77
diff --git a/src/testdir/dumps/Test_tabpanel_stpl_eq_0_1.dump b/src/testdir/dumps/Test_tabpanel_stpl_eq_0_1.dump
new file mode 100644
index 0000000..2ed5307
--- /dev/null
+++ b/src/testdir/dumps/Test_tabpanel_stpl_eq_0_1.dump
@@ -0,0 +1,10 @@
+| +2&#ffffff0|+| |[|N|o| |N|a|m|e|]| | +8#0000001#e0e0e08|0@3| | +1#0000000#ffffff0@57|X+8#0000001#e0e0e08
+>a+0#0000000#ffffff0@2| @74
+|b@2| @74
+|c@2| @74
+|d@2| @74
+|~+0#4040ff13&| @76
+|~| @76
+|~| @76
+|~| @76
+| +0#0000000&@77
diff --git a/src/testdir/test_tabpanel.vim b/src/testdir/test_tabpanel.vim
index 959734f..0d79650 100644
--- a/src/testdir/test_tabpanel.vim
+++ b/src/testdir/test_tabpanel.vim
@@ -10,6 +10,25 @@
   set showtabpanel&
 endfunc
 
+function Test_tabpanel_showtabpanel_eq_0()
+  CheckScreendump
+
+  let lines =<< trim END
+    set showtabpanel=2
+    set noruler
+    call setbufline(bufnr(), 1, ['aaa','bbb','ccc','ddd'])
+    tabnew 0000
+  END
+  call writefile(lines, 'XTest_tabpanel_stpl_eq_0', 'D')
+
+  let buf = RunVimInTerminal('-S XTest_tabpanel_stpl_eq_0', {'rows': 10, 'cols': 78})
+  call term_sendkeys(buf, ":set showtabpanel=0\<CR>\<C-L>")
+  call VerifyScreenDump(buf, 'Test_tabpanel_stpl_eq_0_0', {})
+  call term_sendkeys(buf, ":tabnext\<CR>\<C-L>")
+  call VerifyScreenDump(buf, 'Test_tabpanel_stpl_eq_0_1', {})
+  call StopVimInTerminal(buf)
+endfunc
+
 function Test_tabpanel_showtabpanel_eq_1()
   CheckScreendump
 
diff --git a/src/version.c b/src/version.c
index a9e7385..570a088 100644
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1458,
+/**/
     1457,
 /**/
     1456,
diff --git a/src/window.c b/src/window.c
index f3b23e8..52f4b1a 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3463,9 +3463,6 @@
 	redraw_tabline = TRUE;
 	if (h != tabline_height())
 	    shell_new_rows();
-#if defined(FEAT_TABPANEL)
-	redraw_tabpanel = TRUE;
-#endif
 	shell_new_columns();
     }
 
@@ -4767,19 +4764,7 @@
 #endif
 #if defined(FEAT_TABPANEL)
 	if (prev_columns != COLUMNS_WITHOUT_TPL())
-	{
-	    tabpage_T *save_curtab = curtab;
-
-	    unuse_tabpage(curtab);
-	    use_tabpage(prev_tp);
-	    shell_new_rows();
 	    shell_new_columns();
-
-	    unuse_tabpage(curtab);
-	    use_tabpage(save_curtab);
-	    shell_new_rows();
-	    shell_new_columns();
-	}
 #endif
 	redraw_all_later(UPD_NOT_VALID);
 	apply_autocmds(EVENT_WINNEW, NULL, NULL, FALSE, curbuf);
@@ -4988,7 +4973,10 @@
     tp->tp_lastwin = lastwin;
     tp->tp_old_Rows = Rows;
     if (tp->tp_old_Columns != -1)
+    {
 	tp->tp_old_Columns = topframe->fr_width;
+	tp->tp_old_coloff = firstwin->w_wincol;
+    }
     firstwin = NULL;
     lastwin = NULL;
     return OK;
@@ -5051,12 +5039,14 @@
 #endif
 		))
 	shell_new_rows();
-    if (curtab->tp_old_Columns != topframe->fr_width)
+    if (curtab->tp_old_Columns != COLUMNS_WITHOUT_TPL()
+	    || curtab->tp_old_coloff != TPL_LCOL(NULL))
     {
 	if (starting == 0)
 	{
 	    shell_new_columns();	// update window widths
 	    curtab->tp_old_Columns = topframe->fr_width;
+	    curtab->tp_old_coloff = firstwin->w_wincol;
 	}
 	else
 	    curtab->tp_old_Columns = -1;  // update window widths later
