diff --git a/python/dune/perftool/sumfact/basis.py b/python/dune/perftool/sumfact/basis.py
index 5311a8e00ec24c3ded43c9f45438cb0d5cd7e6fb..942894555d777e777df15b597a9927780e92996c 100644
--- a/python/dune/perftool/sumfact/basis.py
+++ b/python/dune/perftool/sumfact/basis.py
@@ -291,12 +291,13 @@ def evaluate_reference_gradient(element, name, restriction, index):
     for i in range(dim):
         if i != facedir:
             prod.append(BasisTabulationMatrix(derivative=index == i).pymbolic((prim.Variable(quadinamemapping[i]), prim.Variable(inames[i]))))
+
     if facedir is not None:
         # TODO: Does not work for systems!
         degree = polynomial_degree()
 
         facemod = get_facemod(restriction)
-        prod.append(prim.Call(PolynomialLookup(name_polynomials(degree), True),
+        prod.append(prim.Call(PolynomialLookup(name_polynomials(degree), index == facedir),
                               (prim.Variable(inames[facedir]), facemod)),)
 
     instruction(assignee=prim.Variable(name),