diff --git a/ChangeLog b/ChangeLog
index 758061fa63b2e2a04c995d4bd5f0e8b75f71c8d1..86b413d8c9c474968a18deaee7e8f1c4a79774f2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,8 @@
 	--enable-tiny plus --enable-browser.
 	* src/rcfile.c: Tweak some comments and reshuffle some lines.
 	* src/rcfile.c (color_to_short): Elide a variable.
+	* src/rcfile.c (grab_and_store): First check that there is an
+	open syntax before checking that it is named "default".
 
 2016-03-10  Benno Schulenberg  <bensberg@justemail.net>
 	* src/rcfile.c (grab_and_store): Do not accept 'header" and 'magic'
diff --git a/src/rcfile.c b/src/rcfile.c
index 87cb186f5b817916a841d7f07074d1f294d1ce39..cdf112e39ab183eadb16de73248263293b99bb4a 100644
--- a/src/rcfile.c
+++ b/src/rcfile.c
@@ -797,16 +797,16 @@ void grab_and_store(const char *kind, char *ptr, regexlisttype **storage)
 {
     regexlisttype *lastthing;
 
-    /* The default syntax doesn't take any file matching stuff. */
-    if (strcmp(live_syntax->name, "default") == 0 && *ptr != '\0') {
+    if (!opensyntax) {
 	rcfile_error(
-		N_("The \"default\" syntax does not accept '%s' regexes"), kind);
+		N_("A '%s' command requires a preceding 'syntax' command"), kind);
 	return;
     }
 
-    if (!opensyntax) {
+    /* The default syntax doesn't take any file matching stuff. */
+    if (strcmp(live_syntax->name, "default") == 0 && *ptr != '\0') {
 	rcfile_error(
-		N_("A '%s' command requires a preceding 'syntax' command"), kind);
+		N_("The \"default\" syntax does not accept '%s' regexes"), kind);
 	return;
     }