diff --git a/python/dune/perftool/pdelab/driver.py b/python/dune/perftool/pdelab/driver.py
index f413b1f20fac6d2ba8f72f8ab1474113f51b629e..2ed58b4a9876475383b2eb6850762d13faac6f8d 100644
--- a/python/dune/perftool/pdelab/driver.py
+++ b/python/dune/perftool/pdelab/driver.py
@@ -1140,7 +1140,12 @@ def dune_solve():
         slp = name_stationarylinearproblemsolver()
         solve = "{}.apply();".format(slp)
     elif not linear and matrix_free:
-        raise NotImplementedError("Nonlinear and matrix free is not yet implemented")
+        # TODO copy of linear case and obviously broken, used to generate something ;)
+        formdata = _driver_data['formdata']
+        go = name_gridoperator(formdata)
+        x = name_vector(formdata)
+        include_file("dune/perftool/matrixfree.hh", filetag="driver")
+        solve = "solveMatrixFree({},{});".format(go, x)
     elif not linear and not matrix_free:
         go_type = type_gridoperator(_driver_data['formdata'])
         go = name_gridoperator(_driver_data['formdata'])