diff --git a/src/version.c b/src/version.c
index 47248ee..c0b0c35 100644
--- a/src/version.c
+++ b/src/version.c
@@ -735,6 +735,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    377,
+/**/
     376,
 /**/
     375,
diff --git a/src/window.c b/src/window.c
index f81f552..1cf861b 100644
--- a/src/window.c
+++ b/src/window.c
@@ -684,7 +684,7 @@
     int		available;
     int		oldwin_height = 0;
     int		layout;
-    frame_T	*frp, *curfrp;
+    frame_T	*frp, *curfrp, *frp2, *prevfrp;
     int		before;
     int		minheight;
     int		wmh1;
@@ -730,12 +730,29 @@
 	needed = wmw1 + 1;
 	if (flags & WSP_ROOM)
 	    needed += p_wiw - wmw1;
-	if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
+	if (flags & (WSP_BOT | WSP_TOP))
 	{
 	    minwidth = frame_minwidth(topframe, NOWIN);
 	    available = topframe->fr_width;
 	    needed += minwidth;
 	}
+	else if (p_ea)
+	{
+	    minwidth = frame_minwidth(oldwin->w_frame, NOWIN);
+	    prevfrp = oldwin->w_frame;
+	    for (frp = oldwin->w_frame->fr_parent; frp != NULL;
+							frp = frp->fr_parent)
+	    {
+		if (frp->fr_layout == FR_ROW)
+		    for (frp2 = frp->fr_child; frp2 != NULL;
+							frp2 = frp2->fr_next)
+			if (frp2 != prevfrp)
+			    minwidth += frame_minwidth(frp2, NOWIN);
+		prevfrp = frp;
+	    }
+	    available = topframe->fr_width;
+	    needed += minwidth;
+	}
 	else
 	{
 	    minwidth = frame_minwidth(oldwin->w_frame, NOWIN);
@@ -798,12 +815,29 @@
 	needed = wmh1 + STATUS_HEIGHT;
 	if (flags & WSP_ROOM)
 	    needed += p_wh - wmh1;
-	if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
+	if (flags & (WSP_BOT | WSP_TOP))
 	{
 	    minheight = frame_minheight(topframe, NOWIN) + need_status;
 	    available = topframe->fr_height;
 	    needed += minheight;
 	}
+	else if (p_ea)
+	{
+	    minheight = frame_minheight(oldwin->w_frame, NOWIN) + need_status;
+	    prevfrp = oldwin->w_frame;
+	    for (frp = oldwin->w_frame->fr_parent; frp != NULL;
+							frp = frp->fr_parent)
+	    {
+		if (frp->fr_layout == FR_COL)
+		    for (frp2 = frp->fr_child; frp2 != NULL;
+							frp2 = frp2->fr_next)
+			if (frp2 != prevfrp)
+			    minheight += frame_minheight(frp2, NOWIN);
+		prevfrp = frp;
+	    }
+	    available = topframe->fr_height;
+	    needed += minheight;
+	}
 	else
 	{
 	    minheight = frame_minheight(oldwin->w_frame, NOWIN) + need_status;
