diff --git a/python/dune/codegen/pdelab/driver/solve.py b/python/dune/codegen/pdelab/driver/solve.py
index 79dfac051c66c2faa50c4e262eb419ed30b5fde1..4a6a3c9e7e235ee5368927fc6f97ac817ffde5f5 100644
--- a/python/dune/codegen/pdelab/driver/solve.py
+++ b/python/dune/codegen/pdelab/driver/solve.py
@@ -57,23 +57,8 @@ def dune_solve():
     if get_form_option("generate_jacobians"):
         print_matrix()
 
-    if get_option('instrumentation_level') >= 2:
-        from dune.codegen.pdelab.driver.timings import setup_timer, name_timing_stream, name_timing_identifier
-        timestream = name_timing_stream()
-        setup_timer()
-        from dune.codegen.generation import post_include
-        post_include("HP_DECLARE_TIMER(solve);", filetag="driver")
-
-        solve = ["HP_TIMER_START(solve);",
-                 "{}".format(solve),
-                 "HP_TIMER_STOP(solve);",
-                 "DUMP_TIMER({}, solve, {}, true);".format(get_option("instrumentation_level"), timestream),
-                 ]
-
-        if get_option('instrumentation_level') >= 3:
-            from dune.codegen.pdelab.driver.gridoperator import name_localoperator
-            lop_name = name_localoperator(form_ident)
-            solve.append("{}.dump_timers({}, {}, true);".format(lop_name, timestream, name_timing_identifier()))
+    from dune.codegen.pdelab.driver.timings import timed_region
+    solve = timed_region('solve', solve)
 
     return solve