diff --git a/python/dune/perftool/generation/cpp.py b/python/dune/perftool/generation/cpp.py
index 92a771c4e6bb518666c962fb8e1938490ef55d36..38b2450ad0b6947504514b22795cf6fb204275eb 100644
--- a/python/dune/perftool/generation/cpp.py
+++ b/python/dune/perftool/generation/cpp.py
@@ -7,7 +7,7 @@ from dune.perftool.generation import generator_factory
 from dune.perftool.cgen.clazz import AccessModifier
 
 symbol = generator_factory(item_tags=("symbol",))
-preamble = generator_factory(item_tags=("premable",), counted=True)
+preamble = generator_factory(item_tags=("preamble",), counted=True)
 
 
 def include_file(include, filetag=None):
diff --git a/python/dune/perftool/pdelab/geometry.py b/python/dune/perftool/pdelab/geometry.py
index 9dfdeee78275d4adbc820fcab7a77de2608b59fc..0ad5d5319ffb07d3890137bee3ecb2c43eb53a7b 100644
--- a/python/dune/perftool/pdelab/geometry.py
+++ b/python/dune/perftool/pdelab/geometry.py
@@ -1,5 +1,7 @@
 from dune.perftool.generation import preamble, symbol
-
+from dune.perftool.pdelab.quadrature import (name_quadrature_position,
+                                             quadrature_preamble,
+                                             )
 
 @preamble
 def define_geometry(name):
@@ -18,13 +20,14 @@ def name_dimension():
     return "dim"
 
 
-@preamble
 def define_jacobian_inverse_transposed(name):
     geo = name_geometry()
-    return "auto {} = {}.jacobianInverseTransposed();".format(name,
-                                                              geo,
-                                                              )
-
+    pos = name_quadrature_position()
+    return quadrature_preamble("auto {} = {}.jacobianInverseTransposed({});".format(name,
+                                                                                    geo,
+                                                                                    pos,
+                                                                                    )
+                               )
 
 @symbol
 def name_jacobian_inverse_transposed():
diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index f56a7159f3715f00a60aca520a8a3d6f1bf69307..b7225e7e30fa185f738d6b4fe593189963721b1c 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -98,13 +98,13 @@ def generate_kernel(integrand=None, measure=None):
     domains = [i for i in retrieve_cache_items("domain")]
     instructions = [i for i in retrieve_cache_items("instruction")]
     temporaries = {i.name: i for i in retrieve_cache_items("temporary")}
-    # preambles = [i for i in retrieve_cache_items("preamble")]
+    preambles = [(i, p) for i, p in enumerate(retrieve_cache_items("preamble"))]
     arguments = [i for i in retrieve_cache_items("argument")]
 
     # Create the kernel
     from loopy import make_kernel, preprocess_kernel
     # kernel = make_kernel(domains, instructions, arguments, temporary_variables=temporaries, preambles=preambles, target=DuneTarget())
-    kernel = make_kernel(domains, instructions, arguments, temporary_variables=temporaries, target=DuneTarget())
+    kernel = make_kernel(domains, instructions, arguments, temporary_variables=temporaries, target=DuneTarget(), preambles=preambles)
     kernel = preprocess_kernel(kernel)
 
     # All items with the kernel tags can be destroyed once a kernel has been generated
diff --git a/python/dune/perftool/pdelab/quadrature.py b/python/dune/perftool/pdelab/quadrature.py
index c9c9edcecf4102d0679817efaf33b5bf31b1acc6..eb5b724e300c838ac69304b26253fc66576b38d6 100644
--- a/python/dune/perftool/pdelab/quadrature.py
+++ b/python/dune/perftool/pdelab/quadrature.py
@@ -5,8 +5,6 @@ from dune.perftool.generation import (cached,
                                       symbol,
                                       temporary_variable,
                                       )
-from dune.perftool.pdelab.geometry import (name_geometry,
-                                           )
 
 
 @iname
@@ -38,6 +36,7 @@ def name_quadrature_weight():
 
 def define_quadrature_factor(fac):
     weight = name_quadrature_weight()
+    from dune.perftool.pdelab.geometry import name_geometry
     geo = name_geometry()
     pos = name_quadrature_position()
     code = "{} = {}*{}.integrationElement({});".format(fac,
@@ -66,6 +65,7 @@ def name_order():
 @cached
 def quadrature_loop_statement():
     qp = name_quadrature_point()
+    from dune.perftool.pdelab.geometry import name_geometry
     geo = name_geometry()
     order = name_order()
     return "const auto& {} : quadratureRule({}, {})".format(qp,