diff --git a/python/dune/perftool/sumfact/symbolic.py b/python/dune/perftool/sumfact/symbolic.py
index 9cdd01749da1afe67fd47c30acdbee33fc4e2b2f..90818e301475406ec4a85bb8a7e0f4a76434d4d5 100644
--- a/python/dune/perftool/sumfact/symbolic.py
+++ b/python/dune/perftool/sumfact/symbolic.py
@@ -471,14 +471,18 @@ class VectorizedSumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable)
 
     def vec_index(self, sf):
         quad_inames = quadrature_inames()
-        index = []
-        i = 0
         sliced = 0
-        for d in range(world_dimension()):
-            if self.matrix_sequence[d].face is None:
+        if len(sf.matrix_sequence) == local_dimension():
+            for d in range(local_dimension()):
                 if self.matrix_sequence[d].slice_size:
-                    sliced = prim.Variable(quad_inames[i])
-                i = i + 1
+                    sliced = prim.Variable(quad_inames[d])
+        else:
+            i = 0
+            for d in range(world_dimension()):
+                if self.matrix_sequence[d].face is None:
+                    if self.matrix_sequence[d].slice_size:
+                        sliced = prim.Variable(quad_inames[i])
+                    i = i + 1
 
         return self.horizontal_index(sf) + prim.Remainder(sliced, self.vertical_width)