diff --git a/python/dune/perftool/generation/loopy.py b/python/dune/perftool/generation/loopy.py
index 69ad01cb31f211066e074f7d3318e62fd57402ef..bdca6a9f2b99af29aee25fb181a0e55f45adb292 100644
--- a/python/dune/perftool/generation/loopy.py
+++ b/python/dune/perftool/generation/loopy.py
@@ -55,7 +55,7 @@ def get_temporary_name():
 @generator_factory(item_tags=("temporary",), cache_key_generator=lambda n, **kw: n)
 def temporary_variable(name, **kwargs):
     from dune.perftool.loopy.temporary import DuneTemporaryVariable
-    return DuneTemporaryVariable(name, scope=loopy.temp_var_scope.LOCAL, **kwargs)
+    return DuneTemporaryVariable(name, scope=loopy.temp_var_scope.PRIVATE, **kwargs)
 
 
 # Now define generators for instructions. To ease dependency handling of instructions
diff --git a/python/dune/perftool/loopy/target.py b/python/dune/perftool/loopy/target.py
index 295a6029b3ba6891b84a85132fac2d640df271e6..a8e2232534338027853bbc8cb1ba0926ed3aff59 100644
--- a/python/dune/perftool/loopy/target.py
+++ b/python/dune/perftool/loopy/target.py
@@ -14,6 +14,8 @@ from loopy.target.c import CASTBuilder
 from loopy.target.c.codegen.expression import ExpressionToCExpressionMapper, CExpressionToCodeMapper
 from loopy.types import NumpyType
 
+from pymbolic.mapper.stringifier import PREC_NONE
+
 import pymbolic.primitives as prim
 import cgen
 
@@ -62,6 +64,24 @@ class DuneCExpressionToCodeMapper(CExpressionToCodeMapper):
         else:
             return CExpressionToCodeMapper.map_remainder(expr, enclosing_prec)
 
+    def map_min(self, expr, enclosing_prec):
+        """ Max/Min is not implemented as a function!
+        TODO: Revisit this w.r.t. ADL problems
+        """
+        what = type(expr).__name__.lower()
+
+        children = list(expr.children)
+
+        result = self.rec(children.pop(), PREC_NONE)
+        while children:
+            result = "std::%s(%s, %s)" % (what,
+                        self.rec(children.pop(), PREC_NONE),
+                        result)
+
+        return result
+
+    map_max = map_min
+
 
 class DuneASTBuilder(CASTBuilder):
     def function_manglers(self):
diff --git a/python/dune/perftool/loopy/transformations/vectorview.py b/python/dune/perftool/loopy/transformations/vectorview.py
index 5d72fb4d263e1217fc16cd7b1c95b22a71b5eec3..243a6e528562607038f17134bb93837690aad72d 100644
--- a/python/dune/perftool/loopy/transformations/vectorview.py
+++ b/python/dune/perftool/loopy/transformations/vectorview.py
@@ -23,14 +23,17 @@ def add_vector_view(knl, tmpname):
     assert tmpname in temporaries
     temp = temporaries[tmpname]
     vecname = get_vector_view_name(tmpname)
+    bsname = tmpname + "_base"
 
     if vecname in knl.temporary_variables:
         return knl
 
     # Add base storage to the original temporary!
     if not temp.base_storage:
-        temp = temp.copy(base_storage=tmpname + "_base")
+        temp = temp.copy(base_storage=bsname)
         temporaries[tmpname] = temp
+    else:
+        bsname = temp.base_storage
 
     # Determine the shape by dividing total size by vector size
     vecsize = get_vcl_type_size(temp.dtype)
@@ -41,7 +44,7 @@ def add_vector_view(knl, tmpname):
     temporaries[vecname] = lp.TemporaryVariable(vecname,
                                                 dim_tags="c,vec",
                                                 shape=(size, vecsize),
-                                                base_storage=tmpname + "_base",
+                                                base_storage=bsname,
                                                 dtype=np.float64,
                                                 scope=lp.temp_var_scope.PRIVATE,
                                                 )