diff --git a/python/lbmpy_walberla/additional_data_handler.py b/python/lbmpy_walberla/additional_data_handler.py
index 770557d14f34fac81e77ab2f8e48d667d10e89ae..6df75061ae4663b61e6c8aba3b8f1a9c10c80285 100644
--- a/python/lbmpy_walberla/additional_data_handler.py
+++ b/python/lbmpy_walberla/additional_data_handler.py
@@ -76,7 +76,7 @@ class FreeSlipAdditionalDataHandler(AdditionalDataHandler):
                           f"   element.wnx = {inv_offset[0]};",
                           f"   element.wny = {inv_offset[1]};",
                           f"   element.wnz = {inv_offset[2]};",
-                          f"   ref_dir = {direction};",
+                          f"   ref_dir = {self._walberla_stencil.index(inv_offset)};",
                           "}"]
         elif self._dim == 2:
             init_list += ["// concave corner (neighbors are non-fluid)",
@@ -84,7 +84,7 @@ class FreeSlipAdditionalDataHandler(AdditionalDataHandler):
                           "{",
                           f"   element.wnx = {inv_offset[0]};",
                           f"   element.wny = {inv_offset[1]};",
-                          f"   ref_dir = {direction};",
+                          f"   ref_dir = {self._walberla_stencil.index(inv_offset)};",
                           "}"]
         init_list.append("element.ref_dir = ref_dir;")
 
diff --git a/tests/lbm/codegen/GeneratedFreeSlip.py b/tests/lbm/codegen/GeneratedFreeSlip.py
index e079cbe750d88a704c9273d714d80656349e1f1f..65d84275cda0c1d25bc5c2d55ac256fab2c0f3e6 100644
--- a/tests/lbm/codegen/GeneratedFreeSlip.py
+++ b/tests/lbm/codegen/GeneratedFreeSlip.py
@@ -14,7 +14,7 @@ import sympy as sp
 
 with CodeGeneration() as ctx:
     data_type = "float64" if ctx.double_accuracy else "float32"
-    stencil = LBStencil(Stencil.D3Q19)
+    stencil = LBStencil(Stencil.D3Q27)
 
     pdfs, pdfs_tmp = fields(f"pdfs({stencil.Q}), pdfs_tmp({stencil.Q}): {data_type}[{stencil.D}D]",
                             layout='fzyx')