diff --git a/ChangeLog b/ChangeLog
index 0040fbb7b4a766c70a4655ce060b885f15fd90fc..60b8dd54f8ee0931866e73a798e598e060a3c224 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-06-30  Benno Schulenberg  <bensberg@justemail.net>
+	* src/color.c (color_update): When there are no syntaxes, for example
+	with --ignorercfiles, do not try to find one, because that would lead
+	to the magic database being searched, which slows down startup a lot.
+
 2014-06-29  Benno Schulenberg  <bensberg@justemail.net>
 	* src/rcfile.c: Fix compilation with --enable-tiny --enable-nanorc.
 	* src/winio.c (parse_kbinput, get_escape_seq_kbinput): Make Ctrl-Left
diff --git a/src/color.c b/src/color.c
index 7e8e1a40ea3ba1ed9caedb3ccc6eb3a5b0607a47..00af4b7770706d51ec9bb61bf080b1863197902f 100644
--- a/src/color.c
+++ b/src/color.c
@@ -167,6 +167,10 @@ void color_update(void)
     openfile->syntax = NULL;
     openfile->colorstrings = NULL;
 
+    /* If the rcfiles were not read, or contained no syntaxes, get out. */
+    if (syntaxes == NULL)
+	return;
+
     /* If we specified a syntax override string, use it. */
     if (syntaxstr != NULL) {
 	/* If the syntax override is "none", it's the same as not having