diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index 853ca80c4e783fdc7901effecc3d6581a8ab1623..7a9f4169c837f019d5af2842875c3ef39d2eb133 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -471,6 +471,10 @@ def generate_kernel(integrals):
     knl = extract_kernel_from_cache("kernel_default")
     delete_cache_items("kernel_default")
 
+    # Reset the quadrature degree
+    from dune.perftool.sumfact.tabulation import set_quadrature_points
+    set_quadrature_points(None)
+
     # Clean the cache from any data collected after the dry run
     delete_cache_items("dryrundata")
 
diff --git a/python/dune/perftool/sumfact/tabulation.py b/python/dune/perftool/sumfact/tabulation.py
index b56ac4625ce8fd5cf30caa3141c8d18c4c3d177f..e9af4d94426e97527a44b182ff88de097f4cd678 100644
--- a/python/dune/perftool/sumfact/tabulation.py
+++ b/python/dune/perftool/sumfact/tabulation.py
@@ -206,16 +206,19 @@ class BasisTabulationMatrixArray(BasisTabulationMatrixBase):
         return True
 
 
-@generator_factory(context_tags=("kernel",),
-                   cache_key_generator=lambda q: 0 if q is None else 1)
-def set_quadrature_points_per_direction(quad):
-    return quad
+_quad = None
+
+
+def set_quadrature_points(quad):
+    assert quad is None or isinstance(quad, tuple)
+    global _quad
+    _quad = quad
 
 
 def quadrature_points_per_direction():
-    custom = set_quadrature_points_per_direction(None)
-    if custom is not None:
-        return custom
+    global _quad
+    if _quad is not None:
+        return _quad
 
     # Quadrature order per direction
     q = quadrature_order()
diff --git a/python/dune/perftool/sumfact/vectorization.py b/python/dune/perftool/sumfact/vectorization.py
index af92c6967388cca9679829d7805803011def4108..a8cd0189e3ff460e0dc7cde570e3c051fda68888 100644
--- a/python/dune/perftool/sumfact/vectorization.py
+++ b/python/dune/perftool/sumfact/vectorization.py
@@ -13,7 +13,7 @@ from dune.perftool.pdelab.restriction import (Restriction,
                                               )
 from dune.perftool.sumfact.tabulation import (BasisTabulationMatrixArray,
                                               quadrature_points_per_direction,
-                                              set_quadrature_points_per_direction,
+                                              set_quadrature_points,
                                               )
 from dune.perftool.error import PerftoolError
 from dune.perftool.options import get_option
@@ -74,7 +74,7 @@ def vertical_vectorization_strategy(sumfact, depth):
             elif get_option("vectorize_allow_quadrature_changes") and mat.quadrature_size != 1:
                 quad = list(quadrature_points_per_direction())
                 quad[i] = round_to_multiple(quad[i], depth)
-                set_quadrature_points_per_direction(tuple(quad))
+                set_quadrature_points(tuple(quad))
                 return i
             elif mat.quadrature_size != 1:
                 raise PerftoolError("Vertical vectorization is not possible!")