diff --git a/python/dune/codegen/pdelab/geometry.py b/python/dune/codegen/pdelab/geometry.py
index 82b95cce6e83f0272a6182289651fb0cf289934b..b9d5b0d03e9c137c30fa49bfefee18d835e7f003 100644
--- a/python/dune/codegen/pdelab/geometry.py
+++ b/python/dune/codegen/pdelab/geometry.py
@@ -27,6 +27,8 @@ from loopy.match import Writes
 import numpy as np
 import pymbolic.primitives as prim
 
+from pytools import memoize
+
 
 @geometry_mixin("base")
 class GeometryMixinBase(object):
@@ -472,6 +474,7 @@ def name_in_cell_geometry(restriction):
     return name
 
 
+@memoize
 def world_dimension():
     data = get_global_context_value("data")
     form = data.object_by_name[get_form_option("form")]
diff --git a/python/dune/codegen/sumfact/tabulation.py b/python/dune/codegen/sumfact/tabulation.py
index d5a44a8989de68f62770a7ff18165afe21d42dcd..7540cc89790392c9ce55cd17b69fcd96370d2de5 100644
--- a/python/dune/codegen/sumfact/tabulation.py
+++ b/python/dune/codegen/sumfact/tabulation.py
@@ -273,6 +273,7 @@ def quadrature_points_per_direction():
 
     # Quadrature points in per direction
     nb_qp = tuple(order // 2 + 1 for order in q)
+    _quad = nb_qp
 
     return nb_qp