diff --git a/python/dune/perftool/loopy/transformations/collect_rotate.py b/python/dune/perftool/loopy/transformations/collect_rotate.py
index d633843adf0d7a67919b99ff8b45301c39c0ba3d..78070a10be4fef8c535a9c3dad6f0a02fe323edf 100644
--- a/python/dune/perftool/loopy/transformations/collect_rotate.py
+++ b/python/dune/perftool/loopy/transformations/collect_rotate.py
@@ -188,7 +188,7 @@ def collect_vector_data_rotate(knl):
             else:
                 # Add a vector view to this quantity
                 expr, = quantities[quantity]
-                knl = add_vector_view(knl, quantity)
+                knl = add_vector_view(knl, quantity, flatview=True)
                 replacemap_vec[expr] = prim.Subscript(prim.Variable(get_vector_view_name(quantity)),
                                                       (prim.Variable("vec_index"), prim.Variable(new_iname)),
                                                       )
diff --git a/python/dune/perftool/loopy/transformations/vectorview.py b/python/dune/perftool/loopy/transformations/vectorview.py
index 1450b26e39bd26304322175cce53625666f919df..7fc3ff8f2ea840be0f4c3841ba701176822365c8 100644
--- a/python/dune/perftool/loopy/transformations/vectorview.py
+++ b/python/dune/perftool/loopy/transformations/vectorview.py
@@ -59,7 +59,6 @@ def add_vector_view(knl, tmpname, pad_to=None, flatview=False):
         shape = (size, vecsize)
         dim_tags = "c,vec"
     else:
-        assert(temp.shape[-1] == vecsize)
         shape = temp.shape
         # This works around a loopy weirdness (which might as well be a bug)
         # TODO: investigate this!
diff --git a/test/sumfact/poisson/CMakeLists.txt b/test/sumfact/poisson/CMakeLists.txt
index aab2e764b019fe0281c20075a819a29b52f26640..062fc23d1d26a03922ec30a8f32164c5c344eda2 100644
--- a/test/sumfact/poisson/CMakeLists.txt
+++ b/test/sumfact/poisson/CMakeLists.txt
@@ -38,3 +38,9 @@ dune_add_formcompiler_system_test(UFLFILE poisson_dg_2d.ufl
                                   BASENAME sumfact_poisson_fastdg
                                   INIFILE poisson_fastdg.mini
                                   )
+
+# Poisson DG with a full tensor
+dune_add_formcompiler_system_test(UFLFILE poisson_dg_tensor.ufl
+                                  BASENAME sumfact_poisson_dg_tensor
+                                  INIFILE poisson_dg_tensor.mini
+                                  )
diff --git a/test/sumfact/poisson/poisson_dg_tensor.mini b/test/sumfact/poisson/poisson_dg_tensor.mini
new file mode 100644
index 0000000000000000000000000000000000000000..0ae90c37008a8301d54e453053cc87458a3713e9
--- /dev/null
+++ b/test/sumfact/poisson/poisson_dg_tensor.mini
@@ -0,0 +1,22 @@
+__name = sumfact_poisson_dg_tensor_{__exec_suffix}
+__exec_suffix = {quadvec_suffix}_{gradvec_suffix}
+
+quadvec_suffix = quadvec, nonquadvec | expand quad
+gradvec_suffix = gradvec, nongradvec | expand grad
+
+cells = 8 8 8
+extension = 1. 1. 1.
+
+[wrapper.vtkcompare]
+name = {__name}
+extension = vtu
+
+[formcompiler]
+sumfact = 1
+exact_solution_expression = g
+compare_l2errorsquared = 1e-4
+vectorize_quad = 1, 0 | expand quad
+vectorize_grads = 1, 0 | expand grad
+
+[formcompiler.ufl_variants]
+degree = 2
diff --git a/test/sumfact/poisson/poisson_dg_tensor.ufl b/test/sumfact/poisson/poisson_dg_tensor.ufl
new file mode 100644
index 0000000000000000000000000000000000000000..ceecebc5eba11f95b7bac462631e61955d4ab69a
--- /dev/null
+++ b/test/sumfact/poisson/poisson_dg_tensor.ufl
@@ -0,0 +1,32 @@
+cell = hexahedron
+
+x = SpatialCoordinate(cell)
+
+I = Identity(3)
+A = as_matrix([[x[i]*x[j] + I[i,j] for j in range(3)] for i in range(3)])
+g = x[0]**2 + x[1]**2 + x[2]**2
+c = 10.
+f = -6.
+
+V = FiniteElement("DG", cell, 1)
+
+u = TrialFunction(V)
+v = TestFunction(V)
+
+n = FacetNormal(cell)('+')
+
+gamma = 1.0
+theta = -1.0
+
+r = (inner(A*grad(u), grad(v)) + c*u*v)*dx \
+  + inner(n, A*avg(grad(u)))*jump(v)*dS \
+  + gamma*jump(u)*jump(v)*dS \
+  + theta*jump(u)*inner(A*avg(grad(v)), n)*dS \
+  - inner(n, A*grad(u))*v*ds \
+  + gamma*u*v*ds \
+  - theta*u*inner(A*grad(v), n)*ds \
+  - f*v*dx \
+  + theta*g*inner(A*grad(v), n)*ds \
+  - gamma*g*v*ds
+
+forms = [r]