updated for version 7.0016
diff --git a/src/syntax.c b/src/syntax.c
index e5d1b18..e99f097 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -6016,7 +6016,18 @@
      * If syntax highlighting is enabled load the highlighting for it.
      */
     if (get_var_value((char_u *)"g:syntax_on") != NULL)
-	(void)cmd_runtime((char_u *)"syntax/syncolor.vim", TRUE);
+    {
+	static int	recursive = 0;
+
+	if (recursive >= 5)
+	    EMSG(_("E679: recursive loop loading syncolor.vim"));
+	else
+	{
+	    ++recursive;
+	    (void)cmd_runtime((char_u *)"syntax/syncolor.vim", TRUE);
+	    --recursive;
+	}
+    }
 #endif
 }