updated for version 7.3.520
Problem:    Gvim starts up slow on Unbuntu 12.04.
Solution:   Move the call to gui_mch_init_check() to after fork(). (Yasuhiro
            Matsumoto)  Do check $DISPLAY being set.
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 0912609..d70f418 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -1414,7 +1414,29 @@
 }
 
 /*
- * Check if the GUI can be started.  Called before gvimrc is sourced.
+ * Check if the GUI can be started.  Called before gvimrc is sourced and
+ * before fork().
+ * Return OK or FAIL.
+ */
+    int
+gui_mch_early_init_check(void)
+{
+    char_u *p;
+
+    /* Guess that when $DISPLAY isn't set the GUI can't start. */
+    p = mch_getenv((char_u *)"DISPLAY");
+    if (p == NULL || *p == NUL)
+    {
+	gui.dying = TRUE;
+	EMSG(_((char *)e_opendisp));
+	return FAIL;
+    }
+    return OK;
+}
+
+/*
+ * Check if the GUI can be started.  Called before gvimrc is sourced but after
+ * fork().
  * Return OK or FAIL.
  */
     int
@@ -3050,7 +3072,7 @@
 
     for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
     {
-	/* OpenOffice tries to use TARGET_HTML and fails when it doesn't
+	/* OpenOffice tries to use TARGET_HTML and fails when we don't
 	 * return something, instead of trying another target. Therefore only
 	 * offer TARGET_HTML when it works. */
 	if (!clip_html && selection_targets[i].info == TARGET_HTML)