diff --git a/cue/format/testdata/expressions.golden b/cue/format/testdata/expressions.golden
index b7e4457..725e740 100644
--- a/cue/format/testdata/expressions.golden
+++ b/cue/format/testdata/expressions.golden
@@ -149,8 +149,16 @@
 		if x > 9 { x } ]
 	e: [
 		for x in someObject
-		if x > 9 { x }
+		if x > 9 { x // TODO(deprecated): remove!
+		}
 	]
+
+	e: [
+		if x > 1 {},
+		if x > 1 {},
+		for x in src {},
+	]
+
 	for k, v in someObject {
 		"\(k)": v
 	}
diff --git a/cue/format/testdata/expressions.input b/cue/format/testdata/expressions.input
index c0898ee..b72299c 100644
--- a/cue/format/testdata/expressions.input
+++ b/cue/format/testdata/expressions.input
@@ -145,10 +145,17 @@
     e: [ x
     for x in someObject
     if x > 9 ]
-   e: [ x
+   e: [ x // TODO(deprecated): remove!
     for x in someObject
     if x > 9
     ]
+
+    e: [
+        if x > 1 {},
+        if x > 1 {},
+        for x in src {},
+    ]
+
     for k, v in someObject {
         "\(k)": v
     }
diff --git a/cue/parser/parser.go b/cue/parser/parser.go
index dbdf0f3..157b1b5 100644
--- a/cue/parser/parser.go
+++ b/cue/parser/parser.go
@@ -1213,12 +1213,6 @@
 		}
 	}
 
-	for _, v := range list {
-		if _, ok := v.(*ast.Comprehension); ok && len(list) != 1 {
-			p.errf(v.Pos(), "multiple comprehensions per list not yet supported")
-		}
-	}
-
 	return
 }
 
diff --git a/cue/testdata/comprehensions/incomplete.txtar b/cue/testdata/comprehensions/incomplete.txtar
new file mode 100644
index 0000000..1d4b4cf
--- /dev/null
+++ b/cue/testdata/comprehensions/incomplete.txtar
@@ -0,0 +1,30 @@
+-- in.cue --
+cond: bool
+src: {}
+a: [ if cond {} ]
+b: [ for x in src.foo {} ]
+-- out/eval --
+(struct){
+  cond: (bool){ bool }
+  src: (struct){
+  }
+  a: (_|_){
+    // [incomplete] a: incomplete bool value 'bool'
+  }
+  b: (_|_){
+    // [incomplete] b: undefined field foo:
+    //     ./in.cue:4:19
+  }
+}
+-- out/compile --
+--- in.cue
+{
+  cond: bool
+  src: {}
+  a: [
+    if 〈0;cond〉 {},
+  ]
+  b: [
+    for _, x in 〈0;src〉.foo {},
+  ]
+}
diff --git a/cue/testdata/comprehensions/multi.txtar b/cue/testdata/comprehensions/multi.txtar
new file mode 100644
index 0000000..57b5236
--- /dev/null
+++ b/cue/testdata/comprehensions/multi.txtar
@@ -0,0 +1,101 @@
+-- in.cue --
+list: [2, 3]
+a: [ 3, for x in list { x }, for x in list { x } ]
+b: [ 3, if true { 3 }, for x in list if x > 2 { x } ]
+
+issue574: {
+    greet: true
+    bye:   true
+
+    message1: [
+     if greet { "hello" },
+     "how are you doing?",
+     "bye",
+    ]
+
+    message2: [
+        if !greet { "hello" },
+        "how are you doing?",
+        if bye {
+            "bye"
+        },
+    ]
+}
+-- out/eval --
+(struct){
+  list: (#list){
+    0: (int){ 2 }
+    1: (int){ 3 }
+  }
+  a: (#list){
+    0: (int){ 3 }
+    1: (int){ 2 }
+    2: (int){ 3 }
+    3: (int){ 2 }
+    4: (int){ 3 }
+  }
+  b: (#list){
+    0: (int){ 3 }
+    1: (int){ 3 }
+    2: (int){ 3 }
+  }
+  issue574: (struct){
+    greet: (bool){ true }
+    bye: (bool){ true }
+    message1: (#list){
+      0: (string){ "hello" }
+      1: (string){ "how are you doing?" }
+      2: (string){ "bye" }
+    }
+    message2: (#list){
+      0: (string){ "how are you doing?" }
+      1: (string){ "bye" }
+    }
+  }
+}
+-- out/compile --
+--- in.cue
+{
+  list: [
+    2,
+    3,
+  ]
+  a: [
+    3,
+    for _, x in 〈0;list〉 {
+      〈1;x〉
+    },
+    for _, x in 〈0;list〉 {
+      〈1;x〉
+    },
+  ]
+  b: [
+    3,
+    if true {
+      3
+    },
+    for _, x in 〈0;list〉 if (〈0;x〉 > 2) {
+      〈1;x〉
+    },
+  ]
+  issue574: {
+    greet: true
+    bye: true
+    message1: [
+      if 〈0;greet〉 {
+        "hello"
+      },
+      "how are you doing?",
+      "bye",
+    ]
+    message2: [
+      if !〈0;greet〉 {
+        "hello"
+      },
+      "how are you doing?",
+      if 〈0;bye〉 {
+        "bye"
+      },
+    ]
+  }
+}
diff --git a/internal/core/eval/eval.go b/internal/core/eval/eval.go
index ed9ccef..885a719 100644
--- a/internal/core/eval/eval.go
+++ b/internal/core/eval/eval.go
@@ -1908,7 +1908,7 @@
 					n.insertField(label, c)
 				})
 				hasComprehension = true
-				if err != nil && !err.IsIncomplete() {
+				if err != nil {
 					n.addBottom(err)
 				}
 
