diff --git a/patches/loopy/Current.patch b/patches/loopy/Current.patch
index e6bfaf884633839b9a0b4aa43c2c50bbeb27d2e5..0709ea528977ffcf0724283f7c22f5e96898ab12 100644
--- a/patches/loopy/Current.patch
+++ b/patches/loopy/Current.patch
@@ -1,12 +1,12 @@
-From d75091179a72f10c110276720355dbf82ed33ef3 Mon Sep 17 00:00:00 2001
+From 87331320981ca8f7419f32b48609e6dc465bbfff Mon Sep 17 00:00:00 2001
 From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
-Date: Fri, 9 Dec 2016 14:57:44 +0100
-Subject: [PATCH] Current loopy patch
+Date: Tue, 20 Dec 2016 11:25:11 +0100
+Subject: [PATCH] Current patch
 
 ---
  loopy/check.py               | 10 +++++-----
- loopy/codegen/instruction.py |  6 +++---
- 2 files changed, 8 insertions(+), 8 deletions(-)
+ loopy/codegen/instruction.py | 43 ++++++++++++++++++++++---------------------
+ 2 files changed, 27 insertions(+), 26 deletions(-)
 
 diff --git a/loopy/check.py b/loopy/check.py
 index 7562eac..ac03be0 100644
@@ -37,10 +37,54 @@ index 7562eac..ac03be0 100644
          kernel.target.pre_codegen_check(kernel)
          check_that_shapes_and_strides_are_arguments(kernel)
 diff --git a/loopy/codegen/instruction.py b/loopy/codegen/instruction.py
-index c490abb..ec68921 100644
+index c490abb..138fd6f 100644
 --- a/loopy/codegen/instruction.py
 +++ b/loopy/codegen/instruction.py
-@@ -219,9 +219,9 @@ def generate_call_code(codegen_state, insn):
+@@ -105,24 +105,25 @@ def generate_assignment_instruction_code(codegen_state, insn):
+ 
+     # {{{ vectorization handling
+ 
+-    if codegen_state.vectorization_info:
+-        if insn.atomicity:
+-            raise Unvectorizable("atomic operation")
+-
+-        vinfo = codegen_state.vectorization_info
+-        vcheck = VectorizabilityChecker(
+-                kernel, vinfo.iname, vinfo.length)
+-        lhs_is_vector = vcheck(insn.assignee)
+-        rhs_is_vector = vcheck(insn.expression)
+-
+-        if not lhs_is_vector and rhs_is_vector:
+-            raise Unvectorizable(
+-                    "LHS is scalar, RHS is vector, cannot assign")
+-
+-        is_vector = lhs_is_vector
+-
+-        del lhs_is_vector
+-        del rhs_is_vector
++#    if codegen_state.vectorization_info:
++#        if insn.atomicity:
++#            raise Unvectorizable("atomic operation")
++#
++#        vinfo = codegen_state.vectorization_info
++#        vcheck = VectorizabilityChecker(
++#                kernel, vinfo.iname, vinfo.length)
++#        lhs_is_vector = vcheck(insn.assignee)
++#        rhs_is_vector = vcheck(insn.expression)
++#
++#        if not lhs_is_vector and rhs_is_vector:
++#            raise Unvectorizable(
++#                    "LHS is scalar, RHS is vector, cannot assign")
++#
++#        is_vector = lhs_is_vector
++#
++#        del lhs_is_vector
++#        del rhs_is_vector
++    is_vector = False
+ 
+     # }}}
+ 
+@@ -219,9 +220,9 @@ def generate_call_code(codegen_state, insn):
  
      # {{{ vectorization handling
  
diff --git a/python/dune/perftool/sumfact/sumfact.py b/python/dune/perftool/sumfact/sumfact.py
index 80524945e454c2228a52113b69ae44fc153fafa7..ef9cf9a5219fd2e4486c03da6018bf238c6e68cb 100644
--- a/python/dune/perftool/sumfact/sumfact.py
+++ b/python/dune/perftool/sumfact/sumfact.py
@@ -249,7 +249,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id):
         # TODO: At the moment this only works if we do not vectorize
         # (over gradients) because loopy tries to acces a vectorclass
         # variable.
-        if get_option('fastdg') and not index:
+        if get_option('fastdg'):
             ft = get_global_context_value("form_type")
             if ft=='residual':
                 accum = accum + ".data()"