diff --git a/cue/testdata/comprehensions/fields.txtar b/cue/testdata/comprehensions/fields.txtar
new file mode 100644
index 0000000..8cf3a10
--- /dev/null
+++ b/cue/testdata/comprehensions/fields.txtar
@@ -0,0 +1,57 @@
+Issue #560
+
+-- cue.mod/module.cue --
+module: "example.com"
+
+-- in.cue --
+import "strings"
+
+#User: {
+    tags_str: string
+    tags_map: {
+         for k, v in strings.Split(tags_str, " ") {
+             "\(v)": string
+         }
+         "{a}": string
+    }
+}
+
+user: {
+    #User
+    tags_str: "b {c}"
+}
+-- out/eval --
+(struct){
+  #User: (#struct){
+    tags_str: (string){ string }
+    tags_map: (_|_){
+      // [incomplete] error in call to strings.Split: non-concrete value string
+      "{a}": (string){ string }
+    }
+  }
+  user: (#struct){
+    tags_str: (string){ "b {c}" }
+    tags_map: (#struct){
+      "{a}": (string){ string }
+      b: (string){ string }
+      "{c}": (string){ string }
+    }
+  }
+}
+-- out/compile --
+--- in.cue
+{
+  #User: {
+    tags_str: string
+    tags_map: {
+      for k, v in 〈import;strings〉.Split(〈1;tags_str〉, " ") {
+        "\(〈1;v〉)": string
+      }
+      "{a}": string
+    }
+  }
+  user: {
+    〈1;#User〉
+    tags_str: "b {c}"
+  }
+}
diff --git a/internal/core/eval/optionals.go b/internal/core/eval/optionals.go
index 947dd19..7edabca 100644
--- a/internal/core/eval/optionals.go
+++ b/internal/core/eval/optionals.go
@@ -235,7 +235,8 @@
 	if !ok {
 		return false
 	}
-	return f.SelectorString(c) == s.Str
+	label := f.StringValue(c)
+	return label == s.Str
 }
 
 type patternMatcher adt.Conjunct
