diff --git a/src/jastadd/ast/Trace.jrag b/src/jastadd/ast/Trace.jrag
index f23bed3060b9e327762183ec346c0d985f566d44..b22c6cc053d6bfd7b21cb2851695b2a64617c546 100644
--- a/src/jastadd/ast/Trace.jrag
+++ b/src/jastadd/ast/Trace.jrag
@@ -100,7 +100,7 @@ aspect Trace {
   syn String AttrDecl.traceEndAttr() = trace("end " + traceSignature());
   syn String AttrDecl.traceEndCachedAttr() = trace("end cached " + traceSignature());
 
-  syn String CollEq.getConditionStringified() = getCondition().replace("\n", " ").replace("\"", "\\\"");
+  syn String CollEq.escapeConditionForTemplate() = getCondition().replace("\n", " ").replace("\"", "\\\"");
 }
 
 aspect NewTrace {
diff --git a/src/template/ast/Collections.tt b/src/template/ast/Collections.tt
index 64db435bf2393636f842af3867df431a6cd64dc1..0e043c525c0a33fd6cf1f069cb8f34c9d7c4932a 100644
--- a/src/template/ast/Collections.tt
+++ b/src/template/ast/Collections.tt
@@ -238,11 +238,9 @@ CollEq.contributeStatement [[
 $if(#hasCondition)
     if (#getCondition) {
       $include(CollEq.addValueToCollection)
-      $include(CollEq.traceContributionCheckMatch)
     }
 $else
     $include(CollEq.addValueToCollection)
-    $include(CollEq.traceContributionCheckMatch)
 $endif
     $include(CollEq.traceContributionCheckEnd)
 ]]
@@ -251,9 +249,11 @@ CollEq.addValueToCollection [[
 $if(#iterableValue)
 for (#elementType value : #getValue) {
   collection.$CombOp(value);
+  $include(CollEq.traceContributionCheckMatch)
 }
 $else
 collection.$CombOp(#getValue);
+$include(CollEq.traceContributionCheckMatch)
 $endif
 ]]
 
diff --git a/src/template/trace/TraceHooks.tt b/src/template/trace/TraceHooks.tt
index f60e76e0b70051ed9ee40cd6b1dbd447ff448e77..e23ae7abc93e416ccfbeea99dc783da2b7464923 100644
--- a/src/template/trace/TraceHooks.tt
+++ b/src/template/trace/TraceHooks.tt
@@ -325,18 +325,22 @@ $endif
 
 CollEq.traceContributionCheckBegin [[
 $if (TraceColl)
-state().trace().contributionCheckBegin(this, "#collectionId", "#getConditionStringified");
+state().trace().contributionCheckBegin(this, "#collectionId", "#escapeConditionForTemplate");
 $endif
 ]]
 
 CollEq.traceContributionCheckEnd [[
 $if (TraceColl)
-state().trace().contributionCheckEnd(this, "#collectionId", "#getConditionStringified");
+state().trace().contributionCheckEnd(this, "#collectionId", "#escapeConditionForTemplate");
 $endif
 ]]
 
 CollEq.traceContributionCheckMatch [[
 $if (TraceColl)
-state().trace().contributionCheckMatch(this, "#collectionId", "#getConditionStringified", #getValue);
+$if(#iterableValue)
+state().trace().contributionCheckMatch(this, "#collectionId", "#escapeConditionForTemplate", value);
+$else
+state().trace().contributionCheckMatch(this, "#collectionId", "#escapeConditionForTemplate", #getValue);
+$endif
 $endif
 ]]