updated for version 7.4.007
Problem:    Creating a preview window on startup leaves the screen layout in a
            messed up state. (Marius Gedminas)
Solution:   Don't change firstwin. (Christian Brabandt)
diff --git a/src/main.c b/src/main.c
index 884a308..7d01a23 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2727,6 +2727,7 @@
     int		arg_idx;		/* index in argument list */
     int		i;
     int		advance = TRUE;
+    win_T	*win;
 
 # ifdef FEAT_AUTOCMD
     /*
@@ -2816,24 +2817,22 @@
 # ifdef FEAT_AUTOCMD
     --autocmd_no_enter;
 # endif
-#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-    /*
-     * Avoid making a preview window the current window.
-     */
-    if (firstwin->w_p_pvw)
-    {
-       win_T   *win;
 
-       for (win = firstwin; win != NULL; win = win->w_next)
-           if (!win->w_p_pvw)
-           {
-               firstwin = win;
-               break;
-           }
+    /* make the first window the current window */
+    win = firstwin;
+#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+    /* Avoid making a preview window the current window. */
+    while (win->w_p_pvw)
+    {
+	win = win->w_next;
+	if (win == NULL)
+	{
+	    win = firstwin;
+	    break;
+	}
     }
 #endif
-    /* make the first window the current window */
-    win_enter(firstwin, FALSE);
+    win_enter(win, FALSE);
 
 # ifdef FEAT_AUTOCMD
     --autocmd_no_leave;