diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index 3fb213c87e98883e4f474c4145090b40aff1eec4..4fb6371057905f1d5cc0d301306522352236fac8 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -281,7 +281,7 @@ def determine_accumulation_space(info, number):
 
 
 def boundary_predicates(expr, measure, subdomain_id):
-    predicates = frozenset([])
+    predicates = []
 
     if subdomain_id not in ['everywhere', 'otherwise']:
         # Get the original form and inspect the present measures
@@ -301,9 +301,18 @@ def boundary_predicates(expr, measure, subdomain_id):
             visitor = get_visitor(measure, subdomain_id)
             subdomain_data = visitor(subdomain_data, do_predicates=True)
 
-        predicates = predicates.union([prim.Comparison(subdomain_data, '==', subdomain_id)])
+        p = prim.Comparison(subdomain_data, '==', subdomain_id)
 
-    return predicates
+        # Try to find conditions that are always 0 or always 1
+        from pymbolic.mapper.evaluator import evaluate
+        try:
+            eval = evaluate(p)
+            if not eval:
+                predicates.append(False)
+        except:
+            predicates.append(p)
+
+    return frozenset(predicates)
 
 
 class PDELabAccumulationInfo(ImmutableRecord):
@@ -392,6 +401,8 @@ def generate_accumulation_instruction(expr, visitor):
     accumvar = name_accumulation_variable(test_lfs.get_restriction() + ansatz_lfs.get_restriction())
 
     predicates = boundary_predicates(expr, visitor.measure, visitor.subdomain_id)
+    if False in predicates:
+        return
 
     rank = 1 if ansatz_lfs.lfs is None else 2
 
diff --git a/python/dune/perftool/sumfact/accumulation.py b/python/dune/perftool/sumfact/accumulation.py
index dff7cfccd8a0282a2b0cf87e8c4a0ea3c709a010..61e39ffa4cc1179645ace5744a7354441ea773ca 100644
--- a/python/dune/perftool/sumfact/accumulation.py
+++ b/python/dune/perftool/sumfact/accumulation.py
@@ -402,6 +402,8 @@ def generate_accumulation_instruction(expr, visitor):
                                      visitor.measure,
                                      visitor.subdomain_id,
                                      )
+    if False in predicates:
+        return
 
     insn_dep = None