diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigSetting.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigSetting.java
index 63052ca..ae70e54 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigSetting.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigSetting.java
@@ -290,22 +290,24 @@
         continue;
       }
 
-      requiredFragmentOptions.add(
-          optionName.equals("define")
-              // --define is more like user-defined build flags than traditional native flags.
-              // Report it
-              // like user-defined flags: the dependency is directly on the flag vs. the fragment
-              // that
-              // contains the flag. This frees a rule that depends on "--define a=1" from preserving
-              // another rule's dependency on "--define b=2". In other words, if both rules simply
-              // said
-              // "I require CoreOptions" (which is the FragmentOptions --define belongs to), that
-              // would
-              // hide the reality that they really have orthogonal dependencies: removing
-              // "--define b=2" is perfectly safe for the rule that needs "--define a=1".
-              ? "--define:" + expectedRawValue.substring(0, expectedRawValue.indexOf('='))
-              // For other native flags, it's reasonable to report the fragment they belong to.
-              : ClassName.getSimpleNameWithOuter(optionClass));
+      if (optionName.equals("define")) {
+        // --define is more like user-defined build flags than traditional native flags. Report it
+        // like user-defined flags: the dependency is directly on the flag vs. the fragment that
+        // contains the flag. This frees a rule that depends on "--define a=1" from preserving
+        // another rule's dependency on "--define b=2". In other words, if both rules simply said
+        // "I require CoreOptions" (which is the FragmentOptions --define belongs to), that would
+        // hide the reality that they really have orthogonal dependencies: removing
+        // "--define b=2" is perfectly safe for the rule that needs "--define a=1".
+        int equalsIndex = expectedRawValue.indexOf('=');
+        requiredFragmentOptions.add(
+            "--define:"
+                + (equalsIndex > 0
+                    ? expectedRawValue.substring(0, equalsIndex)
+                    : expectedRawValue));
+      } else {
+        // For other native flags, it's reasonable to report the fragment they belong to.
+        requiredFragmentOptions.add(ClassName.getSimpleNameWithOuter(optionClass));
+      }
 
       SelectRestriction selectRestriction = options.getSelectRestriction(optionName);
       if (selectRestriction != null) {
diff --git a/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java b/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java
index 323ddea..4e3f7d4 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java
@@ -391,6 +391,20 @@
   }
 
   @Test
+  public void invalidDefineProducesError() throws Exception {
+    scratch.file(
+        "test/BUILD",
+        "config_setting(",
+        "    name = 'match',",
+        "    values = {",
+        "        'define': 'foo',", // Value should be "foo=<something>".
+        "    })");
+
+    checkError(
+        "//test:match", "Variable definitions must be in the form of a 'name=value' assignment");
+  }
+
+  @Test
   public void multipleDefines() throws Exception {
     scratch.file("test/BUILD",
         "config_setting(",
