diff --git a/python/dune/perftool/ufl/visitor.py b/python/dune/perftool/ufl/visitor.py
index b82b7fc9b2b7c2c86a68389a8bca3a22ca0b6327..f4acf9d92527483532fefaaa48ea47480c67b937 100644
--- a/python/dune/perftool/ufl/visitor.py
+++ b/python/dune/perftool/ufl/visitor.py
@@ -232,7 +232,12 @@ class UFL2LoopyVisitor(ModifiedTerminalTracker):
         return self._index_or_fixed_index(o)
 
     def list_tensor(self, o):
-        return self.interface.pymbolic_list_tensor(o)
+        if all(isinstance(i, int) for i in self.indices):
+            index = self.indices[0]
+            self.indices = self.indices[1:]
+            return self.call(o.ufl_operands[index])
+        else:
+            return self.interface.pymbolic_list_tensor(o)
 
     def identity(self, o):
         return self.interface.pymbolic_identity(o)