diff --git a/python/dune/perftool/sumfact/basis.py b/python/dune/perftool/sumfact/basis.py
index 92a8fb3eb2150ee8050a933f7ab259cfaca137e2..9af533e47eda5e2dc4d412d0a6b2b4241d5e7fa8 100644
--- a/python/dune/perftool/sumfact/basis.py
+++ b/python/dune/perftool/sumfact/basis.py
@@ -93,7 +93,8 @@ def pymbolic_trialfunction_gradient(element, restriction, component, visitor):
         if insn_dep is None:
             insn_dep = frozenset({Writes(inp)})
 
-        if get_option('fastdg'):
+        # TODO: fastdg and vectorization
+        if get_option('fastdg') and index is not None:
             # Name of direct input, shape and globalarg is set in sum_factorization_kernel
             direct_input = name_coefficientcontainer(restriction)
         else:
@@ -161,9 +162,11 @@ def pymbolic_trialfunction(element, restriction, component, visitor):
                                       name=inp,
                                       )
 
-    if get_option('fastdg'):
+    # TODO: fastdg and vectorization
+    if get_option('fastdg') and index is not None:
         # Name of direct input, shape and globalarg is set in sum_factorization_kernel
         direct_input = name_coefficientcontainer(restriction)
+        setup_theta(inp, element, restriction, component, index)
     else:
         direct_input = None
         # Setup the input!
diff --git a/python/dune/perftool/sumfact/sumfact.py b/python/dune/perftool/sumfact/sumfact.py
index 41134538abcf8bf53a25b43acc34ff3d5b3b9314..80524945e454c2228a52113b69ae44fc153fafa7 100644
--- a/python/dune/perftool/sumfact/sumfact.py
+++ b/python/dune/perftool/sumfact/sumfact.py
@@ -362,7 +362,8 @@ def sum_factorization_kernel(a_matrices,
         # this reinterprets the output of the previous iteration.
         inp_shape = (a_matrix.cols, product(mat.rows for mat in a_matrices[:l]) * product(mat.cols for mat in a_matrices[l + 1:]))
 
-        if l==0 and direct_input is not None:
+        # TODO: fastdg and vectorization
+        if l==0 and direct_input is not None and not a_matrix.vectorized:
             globalarg(direct_input, dtype=np.float64, shape=inp_shape)
             inp = direct_input
         else: