diff --git a/test/sumfact/poisson/opcount_poisson_2d_order2.mini b/test/sumfact/poisson/opcount_poisson_2d_order2.mini
new file mode 100644
index 0000000000000000000000000000000000000000..7c52a1200294e31ba8c67cb6cdfaa4770fed69ab
--- /dev/null
+++ b/test/sumfact/poisson/opcount_poisson_2d_order2.mini
@@ -0,0 +1,19 @@
+__name = opcount_sumfact_poisson_2d_order2_{__exec_suffix}
+__exec_suffix = {diff_suffix}
+
+diff_suffix = symdiff
+
+cells = 8 8
+extension = 1. 1.
+
+[wrapper.vtkcompare]
+name = {__name}
+reference = poisson_ref
+extension = vtu
+
+[formcompiler]
+numerical_jacobian = 0
+exact_solution_expression = g
+compare_l2errorsquared = 1e-8
+sumfact = 1
+opcounter = 1
diff --git a/test/sumfact/poisson/opcount_poisson_2d_order2.ufl b/test/sumfact/poisson/opcount_poisson_2d_order2.ufl
new file mode 100644
index 0000000000000000000000000000000000000000..23982245c5917beb2e74fbedc0ecf399fec549c2
--- /dev/null
+++ b/test/sumfact/poisson/opcount_poisson_2d_order2.ufl
@@ -0,0 +1,10 @@
+cell = "quadrilateral"
+
+f = Expression("Dune::FieldVector<oc::OpCounter<double>,2> c(0.5); c-= x; return 4.*(1.-c.two_norm2())*exp(-1.*c.two_norm2());", cell=cell)
+g = Expression("Dune::FieldVector<oc::OpCounter<double>,2> c(0.5); c-= x; return exp(-1.*c.two_norm2());", cell=cell)
+
+V = FiniteElement("CG", cell, 2, dirichlet_expression=g)
+u = TrialFunction(V)
+v = TestFunction(V)
+
+forms = [(inner(grad(u), grad(v)) - f*v)*dx]