diff --git a/test/nonlinear/CMakeLists.txt b/test/nonlinear/CMakeLists.txt
index f5e524fd1aad68633c938bda319ab98ca0939d9e..8d56e432b3072e4848b95ee6142c62699dcf1c84 100644
--- a/test/nonlinear/CMakeLists.txt
+++ b/test/nonlinear/CMakeLists.txt
@@ -9,6 +9,12 @@ dune_add_formcompiler_system_test(UFLFILE nonlinear_dg.ufl
                                   INIFILE nonlinear_dg.mini
                                   )
 
+dune_add_formcompiler_system_test(UFLFILE nonlinear.ufl
+                                  BASENAME nonlinear_matrix_free
+                                  INIFILE nonlinear_matrix_free.mini
+                                  )
+
+
 # Add the reference code with the PDELab localoperator that produced
 # the reference vtk file
 add_executable(nonlinear_ref reference_main.cc)
diff --git a/test/nonlinear/nonlinear_matrix_free.mini b/test/nonlinear/nonlinear_matrix_free.mini
new file mode 100644
index 0000000000000000000000000000000000000000..c81b201a5a60600e9ff5a812a9a670b0d33970ca
--- /dev/null
+++ b/test/nonlinear/nonlinear_matrix_free.mini
@@ -0,0 +1,17 @@
+__name = nonlinear_matrix_free_{__exec_suffix}
+__exec_suffix = numdiff, symdiff | expand num
+
+lowerleft = 0.0 0.0
+upperright = 1.0 1.0
+elements = 32 32
+elementType = simplical
+
+[wrapper.vtkcompare]
+name = {__name}
+extension = vtu
+
+[formcompiler]
+numerical_jacobian = 1, 0 | expand num
+matrix_free = 1
+exact_solution_expression = g
+compare_l2errorsquared = 1e-3