diff --git a/python/dune/perftool/compile.py b/python/dune/perftool/compile.py
index 18e620d02382b32e9896436f101297defc88a26d..cd5344c0da55f68b88a3ea1809f800105160fbbc 100644
--- a/python/dune/perftool/compile.py
+++ b/python/dune/perftool/compile.py
@@ -94,7 +94,6 @@ def read_ufl(uflfile):
 
     magic_names = ("dirichlet_expression",
                    "is_dirichlet",
-                   "initial_condition",
                    "exact_solution",
                    )
     for name in magic_names:
diff --git a/python/dune/perftool/pdelab/driver/instationary.py b/python/dune/perftool/pdelab/driver/instationary.py
index 8b5ebc7ffc5679eb527a954287632b1834046db1..723bcfce36937f07621293c3d4e14c834fc778f5 100644
--- a/python/dune/perftool/pdelab/driver/instationary.py
+++ b/python/dune/perftool/pdelab/driver/instationary.py
@@ -17,7 +17,9 @@ from dune.perftool.pdelab.driver.gridoperator import (name_gridoperator,
 from dune.perftool.pdelab.driver.constraints import (name_bctype_function,
                                                      name_constraintscontainer,
                                                      )
-from dune.perftool.pdelab.driver.interpolate import name_boundary_function
+from dune.perftool.pdelab.driver.interpolate import (interpolate_dirichlet_data,
+                                                     name_boundary_function,
+                                                     )
 from dune.perftool.pdelab.driver.solve import (print_matrix,
                                                print_residual,
                                                name_stationarynonlinearproblemsolver,
@@ -65,6 +67,7 @@ def time_loop():
     cc = name_constraintscontainer()
     vector_type = type_vector(formdata)
     vector = name_vector(formdata)
+    interpolate_dirichlet_data(vector)
 
     # Choose between explicit and implicit time stepping
     explicit = get_option('explicit_time_stepping')