diff --git a/python/dune/perftool/ufl/transformations/indexpushdown.py b/python/dune/perftool/ufl/transformations/indexpushdown.py
index 1dd7139d880d947cb8da33a26630cc008ce514f8..73b8d73a670f66517060ac61338a683da275d90e 100644
--- a/python/dune/perftool/ufl/transformations/indexpushdown.py
+++ b/python/dune/perftool/ufl/transformations/indexpushdown.py
@@ -16,9 +16,9 @@ class IndexPushDown(MultiFunction):
             terms = [uc.Indexed(self(term), idx) for term in get_operands(expr)]
             return construct_binary_operator(terms, uc.Sum)
         elif isinstance(expr, uc.Conditional):
-            return uc.Conditional(expr.ufl_operands[0],
-                                  uc.Indexed(self(expr.ufl_operands[1]), idx),
-                                  uc.Indexed(self(expr.ufl_operands[2]), idx)
+            return uc.Conditional(self(expr.ufl_operands[0]),
+                                  self(uc.Indexed(expr.ufl_operands[1], idx)),
+                                  self(uc.Indexed(expr.ufl_operands[2], idx))
                                   )
         else:
             # This is a normal indexed, we treat it as any other.