diff --git a/src/version.c b/src/version.c
index a598b6b..43be175 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3773,
+/**/
     3772,
 /**/
     3771,
diff --git a/src/window.c b/src/window.c
index b54813f..2640db1 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5353,18 +5353,24 @@
     void
 shell_new_rows(void)
 {
-    int		h = (int)ROWS_AVAIL;
+    tabpage_T	*tp;
 
     if (firstwin == NULL)	// not initialized yet
 	return;
-    if (h < frame_minheight(topframe, NULL))
-	h = frame_minheight(topframe, NULL);
 
-    // First try setting the heights of windows with 'winfixheight'.  If
-    // that doesn't result in the right height, forget about that option.
-    frame_new_height(topframe, h, FALSE, TRUE);
-    if (!frame_check_height(topframe, h))
-	frame_new_height(topframe, h, FALSE, FALSE);
+    FOR_ALL_TABPAGES(tp)
+    {
+	int		h = (int)ROWS_AVAIL;
+
+	if (h < frame_minheight(tp->tp_topframe, NULL))
+	    h = frame_minheight(tp->tp_topframe, NULL);
+
+	// First try setting the heights of windows with 'winfixheight'.  If
+	// that doesn't result in the right height, forget about that option.
+	frame_new_height(tp->tp_topframe, h, FALSE, TRUE);
+	if (!frame_check_height(tp->tp_topframe, h))
+	    frame_new_height(tp->tp_topframe, h, FALSE, FALSE);
+    }
 
     (void)win_comp_pos();		// recompute w_winrow and w_wincol
     compute_cmdrow();
@@ -5383,14 +5389,19 @@
     void
 shell_new_columns(void)
 {
+    tabpage_T	*tp;
+
     if (firstwin == NULL)	// not initialized yet
 	return;
 
-    // First try setting the widths of windows with 'winfixwidth'.  If that
-    // doesn't result in the right width, forget about that option.
-    frame_new_width(topframe, (int)Columns, FALSE, TRUE);
-    if (!frame_check_width(topframe, Columns))
-	frame_new_width(topframe, (int)Columns, FALSE, FALSE);
+    FOR_ALL_TABPAGES(tp)
+    {
+	// First try setting the widths of windows with 'winfixwidth'.  If that
+	// doesn't result in the right width, forget about that option.
+	frame_new_width(tp->tp_topframe, (int)Columns, FALSE, TRUE);
+	if (!frame_check_width(tp->tp_topframe, Columns))
+	    frame_new_width(tp->tp_topframe, (int)Columns, FALSE, FALSE);
+    }
 
     (void)win_comp_pos();		// recompute w_winrow and w_wincol
 #if 0
