diff --git a/python/dune/codegen/blockstructured/accumulation.py b/python/dune/codegen/blockstructured/accumulation.py
index dc987cb6435e21adbf79d222dab910491264268f..69e7c901029f8cf0fe051b0fd00830a5bdd449b7 100644
--- a/python/dune/codegen/blockstructured/accumulation.py
+++ b/python/dune/codegen/blockstructured/accumulation.py
@@ -1,3 +1,4 @@
+from dune.codegen.blockstructured.tools import sub_element_inames
 from dune.codegen.generation import accumulation_mixin, instruction
 from dune.codegen.loopy.target import dtype_floatingpoint
 from dune.codegen.options import get_form_option
@@ -66,7 +67,8 @@ def generate_accumulation_instruction(expr, visitor):
     if visitor.trial_info:
         lfs_inames = lfs_inames + visitor.trial_info.inames
 
-    assignee = prim.Subscript(prim.Variable(accumvar_alias), tuple(prim.Variable(i) for i in lfs_inames))
+    assignee = prim.Subscript(prim.Variable(accumvar_alias),
+                              tuple(prim.Variable(i) for i in sub_element_inames() + lfs_inames))
 
     expr_with_weight = prim.Product((expr, prim.Call(prim.Variable(accumvar + '.weight'), ())))