updated for version 7.0052
diff --git a/src/window.c b/src/window.c
index c96bb97..7cd2f02 100644
--- a/src/window.c
+++ b/src/window.c
@@ -74,6 +74,11 @@
 
 #define NOWIN		(win_T *)-1	/* non-exisiting window */
 
+#ifdef FEAT_WINDOWS
+static long p_ch_used = 1L;		/* value of 'cmdheight' when frame
+					   size was set */
+#endif
+
 #if defined(FEAT_WINDOWS) || defined(PROTO)
 /*
  * all CTRL-W window commands are handled here, called from normal_cmd().
@@ -498,6 +503,23 @@
 		break;
 #endif
 
+    case K_KENTER:
+    case CAR:
+#if defined(FEAT_QUICKFIX)
+		/*
+		 * In a quickfix window a <CR> jumps to the error under the
+		 * cursor in a new window.
+		 */
+		if (bt_quickfix(curbuf))
+		{
+		    sprintf((char *)cbuf, "split +%ldcc",
+						 (long)curwin->w_cursor.lnum);
+		    do_cmdline_cmd(cbuf);
+		}
+#endif
+		break;
+
+
 /* CTRL-W g  extended commands */
     case 'g':
     case Ctrl_G:
@@ -2680,6 +2702,9 @@
     topframe->fr_width = Columns;
 #endif
     topframe->fr_height = Rows - p_ch;
+#ifdef FEAT_WINDOWS
+    p_ch_used = p_ch;
+#endif
     topframe->fr_win = curwin;
     curwin->w_frame = topframe;
 }
@@ -3308,6 +3333,10 @@
     win_new_height(firstwin, h);
 #endif
     compute_cmdrow();
+#ifdef FEAT_WINDOWS
+    p_ch_used = p_ch;
+#endif
+
 #if 0
     /* Disabled: don't want making the screen smaller make a window larger. */
     if (p_ea)
@@ -4315,6 +4344,13 @@
     int		h;
     frame_T	*frp;
 
+    /* When passed a negative value use the value of p_ch that we remembered.
+     * This is needed for when the GUI starts up, we can't be sure in what
+     * order things happen. */
+    if (old_p_ch < 0)
+	old_p_ch = p_ch_used;
+    p_ch_used = p_ch;
+
     /* Find bottom frame with width of screen. */
     frp = lastwin->w_frame;
 # ifdef FEAT_VERTSPLIT