diff --git a/src/window.c b/src/window.c
index 8bb3269..abdbd50 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5177,17 +5177,23 @@
     win_T	*wp;
 
     ga_init2(gap, (int)sizeof(int), 1);
-    if (ga_grow(gap, win_count() * 2) == OK)
+    if (ga_grow(gap, win_count() * 2 + 1) == OK)
+    {
+	// first entry is value of 'lines'
+	((int *)gap->ga_data)[gap->ga_len++] = Rows;
+
 	FOR_ALL_WINDOWS(wp)
 	{
 	    ((int *)gap->ga_data)[gap->ga_len++] =
 					       wp->w_width + wp->w_vsep_width;
 	    ((int *)gap->ga_data)[gap->ga_len++] = wp->w_height;
 	}
+    }
 }
 
 /*
- * Restore window sizes, but only if the number of windows is still the same.
+ * Restore window sizes, but only if the number of windows is still the same
+ * and 'lines' didn't change.
  * Does not free the growarray.
  */
     void
@@ -5196,13 +5202,14 @@
     win_T	*wp;
     int		i, j;
 
-    if (win_count() * 2 == gap->ga_len)
+    if (win_count() * 2 + 1 == gap->ga_len
+	    && ((int *)gap->ga_data)[0] == Rows)
     {
 	/* The order matters, because frames contain other frames, but it's
 	 * difficult to get right. The easy way out is to do it twice. */
 	for (j = 0; j < 2; ++j)
 	{
-	    i = 0;
+	    i = 1;
 	    FOR_ALL_WINDOWS(wp)
 	    {
 		frame_setwidth(wp->w_frame, ((int *)gap->ga_data)[i++]);
@@ -6374,7 +6381,7 @@
 }
 
 /*
- * Return TRUE if there is only one window (in the current tab page), not
+ * Return TRUE if there is only one window and only one tab page, not
  * counting a help or preview window, unless it is the current window.
  * Does not count unlisted windows.
  */
