diff --git a/grudge/execution.py b/grudge/execution.py
index 83f98f81d4379ebdc2b55c7ed4f25c5298887c0f..989d1ccc7e3001f6583b98b769d237cb9f40b9dc 100644
--- a/grudge/execution.py
+++ b/grudge/execution.py
@@ -537,7 +537,7 @@ class ExecutionMapper(mappers.Evaluator,
                 matrices_ary = np.empty((
                     noperators, out_grp.nunit_dofs, in_grp.nunit_dofs))
                 for i, op in enumerate(insn.operators):
-                    matrices_ary[i] = matrices[op.rst_axis]
+                    matrices_ary[i,:,:] = matrices[op.rst_axis][:,:]
                 matrices_ary_dev = self.array_context.from_numpy(matrices_ary)
                 self.bound_op.operator_data_cache[cache_key] = matrices_ary_dev