diff --git a/python/dune/perftool/loopy/transformations/duplicate.py b/python/dune/perftool/loopy/transformations/duplicate.py
index eecdd9a8a16523a8b9e0422784734c7a58ab2f24..8d4a3cc0fef258620cd2ebc3d2f3dae64333bc2e 100644
--- a/python/dune/perftool/loopy/transformations/duplicate.py
+++ b/python/dune/perftool/loopy/transformations/duplicate.py
@@ -1,5 +1,5 @@
 """ Iname duplication strategies to make kernels schedulable """
-
+from dune.perftool.options import get_option
 from loopy import (has_schedulable_iname_nesting,
                    get_iname_duplication_options,
                    duplicate_inames,
@@ -18,4 +18,18 @@ def heuristic_duplication(kernel):
         if has_schedulable_iname_nesting(dup_kernel):
             return dup_kernel
 
+    if get_option('blockstructured'):
+        duplication_options = dict(get_iname_duplication_options(kernel))
+        suffixes = ['x','y','z']
+        for iname in duplication_options:
+            if iname[-1] in suffixes:
+                dup_kernel = kernel
+                base = iname[:-1]
+                for s in suffixes:
+                    if base+s in duplication_options:
+                        dup_kernel = duplicate_inames(dup_kernel, base+s, duplication_options[base+s])
+                        del duplication_options[base+s]
+                if has_schedulable_iname_nesting(dup_kernel):
+                    return dup_kernel
+
     raise NotImplementedError("Your kernel needs multiple iname duplications! No generic algorithm implemented for that yet! (#39)")
diff --git a/test/blockstructured/stokes/stokes.mini b/test/blockstructured/stokes/stokes.mini
index c44cc189861c3a1e23963ff21fd56568fdaf4173..8f1ab6ab37cfb0ec17e1723e8fa50f17635902b5 100644
--- a/test/blockstructured/stokes/stokes.mini
+++ b/test/blockstructured/stokes/stokes.mini
@@ -1,7 +1,7 @@
 __name = blockstructured_stokes_{__exec_suffix}
 __exec_suffix = symdiff, numdiff | expand num
 
-cells = 20 20
+cells = 20 20z
 extension = 1. 1.
 
 [wrapper.vtkcompare]