diff --git a/python/dune/perftool/compile.py b/python/dune/perftool/compile.py
index 452aec89be16d2360c51a60b317f8d37ffd75a6b..a40a178227823c199c2a59a6f83baa8cb899d10b 100644
--- a/python/dune/perftool/compile.py
+++ b/python/dune/perftool/compile.py
@@ -108,3 +108,4 @@ def compile_form():
 
                 from dune.perftool.pdelab.localoperator import generate_localoperator_file
                 generate_localoperator_file(kernels, filename)
+            break
diff --git a/python/dune/perftool/pdelab/driver.py b/python/dune/perftool/pdelab/driver.py
index d5840e6b7046d9f5cb331967046f187c745263c9..9a3ad1474c8667e1c2e2d1ea4f36d574097ce281 100644
--- a/python/dune/perftool/pdelab/driver.py
+++ b/python/dune/perftool/pdelab/driver.py
@@ -580,7 +580,12 @@ def name_matrixbackend():
 
 @symbol
 def type_parameters():
-    return "LocalOperatorParams"
+    from dune.perftool.generation import get_global_context_value
+    data = get_global_context_value("data")
+    formdata = get_global_context_value("formdata")
+    from dune.perftool.pdelab.parameter import parameterclass_basename
+    name = parameterclass_basename(formdata, data)
+    return name
 
 
 @preamble
@@ -608,7 +613,9 @@ def typedef_localoperator(name):
     from dune.perftool.pdelab.localoperator import name_localoperator_file
     filename = name_localoperator_file(formdata, data)
     include_file(filename, filetag="driver")
-    return "using {} = LocalOperator<{}, {}>;".format(name, ugfs, vgfs)
+    from dune.perftool.pdelab.localoperator import localoperator_basename
+    lopname = localoperator_basename(formdata, data)
+    return "using {} = {}<{}, {}>;".format(name, lopname, ugfs, vgfs)
 
 
 @symbol
diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index cf5bf30bbb61936538f243596295fe2587620f3a..dde94934766335f1a85d340ca53073b7b14b6911 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -126,8 +126,9 @@ def name_initree_member():
 
 
 @class_basename("operator")
-def localoperator_basename():
-    return "LocalOperator"
+def localoperator_basename(formdata, data):
+    form_name = name_form(formdata, data)
+    return "LocalOperator"+form_name.capitalize()
 
 
 def class_type_from_cache(classtag):
@@ -322,11 +323,11 @@ def generate_localoperator_kernels(formdata, data):
     include_file('dune/pdelab/localoperator/pattern.hh', filetag="operatorfile")
 
     # Trigger this one once early on to avoid wrong stuff happening
-    localoperator_basename()
+    localoperator_basename(formdata, data)
     lop_template_ansatz_gfs()
     lop_template_test_gfs()
     from dune.perftool.pdelab.parameter import parameterclass_basename
-    parameterclass_basename()
+    parameterclass_basename(formdata, data)
 
     # Make sure there is always the same constructor arguments (even if parameter class is empty)
     from dune.perftool.pdelab.localoperator import name_initree_member
diff --git a/python/dune/perftool/pdelab/parameter.py b/python/dune/perftool/pdelab/parameter.py
index c4e3c5488015445dc954258525370cece2c82d65..cda2494567e0c542a8cd7893157fe42805b63e6c 100644
--- a/python/dune/perftool/pdelab/parameter.py
+++ b/python/dune/perftool/pdelab/parameter.py
@@ -24,8 +24,8 @@ from dune.perftool.pdelab.localoperator import (class_type_from_cache,
 
 
 @class_basename("parameterclass")
-def parameterclass_basename():
-    lopbase = localoperator_basename()
+def parameterclass_basename(formdata, data):
+    lopbase = localoperator_basename(formdata, data)
     return "{}Params".format(lopbase)