diff --git a/python/dune/perftool/ufl/visitor.py b/python/dune/perftool/ufl/visitor.py
index d3c4ebe7230e4f486db9f15312ac1d86abc1fff8..e31ad9f20c7262b0f503a2ca1a526d2924110186 100644
--- a/python/dune/perftool/ufl/visitor.py
+++ b/python/dune/perftool/ufl/visitor.py
@@ -256,8 +256,7 @@ class UFL2LoopyVisitor(ModifiedTerminalTracker):
     #
 
     def product(self, o):
-        from pymbolic import flattened_product
-        return flattened_product(tuple(self.call(op) for op in o.ufl_operands))
+        return prim.flattened_product(tuple(self.call(op) for op in o.ufl_operands))
 
     def float_value(self, o):
         return o.value()
@@ -266,11 +265,10 @@ class UFL2LoopyVisitor(ModifiedTerminalTracker):
         return o.value()
 
     def division(self, o):
-        return Quotient(self.call(o.ufl_operands[0]), self.call(o.ufl_operands[1]))
+        return prim.quotient(self.call(o.ufl_operands[0]), self.call(o.ufl_operands[1]))
 
     def sum(self, o):
-        from pymbolic import flattened_sum
-        return flattened_sum(tuple(self.call(op) for op in o.ufl_operands))
+        return prim.flattened_sum(tuple(self.call(op) for op in o.ufl_operands))
 
     def zero(self, o):
         # UFL has Zeroes with shape. We ignore those indices.