diff --git a/python/dune/perftool/ufl/visitor.py b/python/dune/perftool/ufl/visitor.py
index 9e14391c5aef7656dfcc6e0fe8276ffcf3016505..cc5d3726dc4a99f98693e7be3d13aba9d9389204 100644
--- a/python/dune/perftool/ufl/visitor.py
+++ b/python/dune/perftool/ufl/visitor.py
@@ -370,9 +370,14 @@ class UFL2LoopyVisitor(ModifiedTerminalTracker):
         try:
             evaluated = eval(str(cond))
         except:
-            return prim.If(cond,
-                           self.call(o.ufl_operands[1]),
-                           self.call(o.ufl_operands[2]))
+            op1 = self.call(o.ufl_operands[1])
+            op2 = self.call(o.ufl_operands[2])
+
+            # This conditional might be redundant!
+            if op1 == op2:
+                return op1
+
+            return prim.If(cond, op1, op2)
 
         # User code generation time evaluation
         if evaluated: