diff --git a/python/dune/perftool/loopy/transformations/collect_rotate.py b/python/dune/perftool/loopy/transformations/collect_rotate.py
index f37b5df0e9cd9bda881d8f1ddceacaa9924814ce..c6c43a95eff681b1a2abb1d9a681388c6c8da9ee 100644
--- a/python/dune/perftool/loopy/transformations/collect_rotate.py
+++ b/python/dune/perftool/loopy/transformations/collect_rotate.py
@@ -138,6 +138,7 @@ def collect_vector_data_rotate(knl):
                 else:
                     raise NotImplementedError
         elif quantity in knl.temporary_variables:
+            expr, = quantities[quantity]
             if all(get_pymbolic_tag(expr) == 'vector' for expr in quantities[quantity]):
                 #
                 # There is a vector quantity to be vectorized! That requires register rotation!
@@ -165,6 +166,7 @@ def collect_vector_data_rotate(knl):
                                                           )
             else:
                 # Add a vector view to this quantity
+                expr, = quantities[quantity]
                 knl = add_vector_view(knl, quantity)
                 replacemap_vec[expr] = prim.Subscript(prim.Variable(get_vector_view_name(quantity)),
                                                       (prim.Variable("vec_index"), prim.Variable(new_iname)),
diff --git a/python/dune/perftool/pdelab/geometry.py b/python/dune/perftool/pdelab/geometry.py
index 973104dfe931865ec72d3bf8c34a182467f7ca5e..1930ed923104649e6410b573fb878c8b9680c9d1 100644
--- a/python/dune/perftool/pdelab/geometry.py
+++ b/python/dune/perftool/pdelab/geometry.py
@@ -12,7 +12,9 @@ from dune.perftool.generation import (backend,
                                       temporary_variable,
                                       valuearg,
                                       )
-from dune.perftool.options import option_switch
+from dune.perftool.options import (get_option,
+                                   option_switch,
+                                   )
 from dune.perftool.pdelab.quadrature import quadrature_preamble
 from dune.perftool.tools import get_pymbolic_basename
 from ufl.algorithms import MultiFunction
@@ -260,8 +262,12 @@ def declare_normal(name, shape, shape_impl):
 
 def name_unit_outer_normal():
     name = "outer_normal"
-    temporary_variable(name, shape=(world_dimension(),), decl_method=declare_normal)
-    evaluate_unit_outer_normal(name)
+    if not get_option("diagonal_transformation_matrix"):
+        temporary_variable(name, shape=(world_dimension(),), decl_method=declare_normal)
+        evaluate_unit_outer_normal(name)
+    else:
+        declare_normal(name, None, None)
+        globalarg(name, shape=(world_dimension(),), dtype=np.float64)
     return "outer_normal"