diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index 9f196a654599cf5a48978f0606148c94c79cbaf4..7fad25e67d79af09578cecaa47215a2da24e99e2 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -819,6 +819,13 @@ def generate_jacobian_kernels(form, original_form):
     from dune.perftool.ufl.preprocess import preprocess_form
     jacform = preprocess_form(jacform).preprocessed_form
 
+    if get_form_option("block_preconditioner_diagonal"):
+        from dune.perftool.ufl.transformations.blockpreconditioner import diagonal_block_jacobian
+        jacform = diagonal_block_jacobian(jacform)
+    if get_form_option("block_preconditioner_offdiagonal"):
+        from dune.perftool.ufl.transformations.blockpreconditioner import offdiagonal_block_jacobian
+        jacform = offdiagonal_block_jacobian(jacform)
+
     operator_kernels = {}
     with global_context(form_type="jacobian"):
         if get_form_option("generate_jacobians"):