diff --git a/python/lbmpy_walberla/additional_data_handler.py b/python/lbmpy_walberla/additional_data_handler.py
index 9a1f351875d8e73a8e4eee2914b638f87fd4f685..16e5cb35f8ed64ae77eeda06c08812bbb57e950a 100644
--- a/python/lbmpy_walberla/additional_data_handler.py
+++ b/python/lbmpy_walberla/additional_data_handler.py
@@ -2,7 +2,7 @@ from pystencils import Target
 from pystencils.stencil import inverse_direction
 from pystencils.typing import BasicType
 
-from lbmpy.advanced_streaming import AccessPdfValues, numeric_offsets, numeric_index
+from lbmpy.advanced_streaming import AccessPdfValues, numeric_offsets, numeric_index, Timestep, is_inplace
 from lbmpy.advanced_streaming.indexing import MirroredStencilDirections
 from lbmpy.boundaries.boundaryconditions import LbBoundary
 from lbmpy.boundaries import ExtrapolationOutflow, FreeSlip, UBB
@@ -27,7 +27,6 @@ def default_additional_data_handler(boundary_obj: LbBoundary, lb_method, field_n
 class FreeSlipAdditionalDataHandler(AdditionalDataHandler):
     def __init__(self, stencil, boundary_object):
         assert isinstance(boundary_object, FreeSlip)
-        self._boundary_object = boundary_object
         super(FreeSlipAdditionalDataHandler, self).__init__(stencil=stencil)
 
     def data_initialisation(self, direction):
@@ -91,7 +90,6 @@ class FreeSlipAdditionalDataHandler(AdditionalDataHandler):
 class UBBAdditionalDataHandler(AdditionalDataHandler):
     def __init__(self, stencil, boundary_object):
         assert isinstance(boundary_object, UBB)
-        self._boundary_object = boundary_object
         super(UBBAdditionalDataHandler, self).__init__(stencil=stencil)
 
     @property
@@ -131,9 +129,8 @@ class UBBAdditionalDataHandler(AdditionalDataHandler):
 
 
 class OutflowAdditionalDataHandler(AdditionalDataHandler):
-    def __init__(self, stencil, boundary_object, target=Target.CPU, field_name='pdfs', pdfs_data_type=None):
+    def __init__(self, stencil, boundary_object, target=Target.CPU, field_name='pdfs', pdfs_data_type=None, zeroth_timestep=None):
         assert isinstance(boundary_object, ExtrapolationOutflow)
-        self._boundary_object = boundary_object
         self._stencil = boundary_object.stencil
         self._lb_method = boundary_object.lb_method
         self._normal_direction = boundary_object.normal_direction
@@ -146,6 +143,11 @@ class OutflowAdditionalDataHandler(AdditionalDataHandler):
             pdfs_data_type = BasicType(pdfs_data_type)
             self._pdfs_data_type = pdfs_data_type.c_name
 
+        self._streaming_pattern = boundary_object.streaming_pattern
+        if zeroth_timestep:
+            self._zeroth_timestep = zeroth_timestep
+        else:
+            self._zeroth_timestep = Timestep.EVEN if is_inplace(self._streaming_pattern) else Timestep.BOTH
         super(OutflowAdditionalDataHandler, self).__init__(stencil=stencil)
 
         assert sum([a != 0 for a in self._normal_direction]) == 1, \
@@ -170,9 +172,9 @@ class OutflowAdditionalDataHandler(AdditionalDataHandler):
                f"{len(self._stencil)}> >({self._field_name}{identifier}ID); "
 
     def data_initialisation(self, direction_index):
-        pdf_acc = AccessPdfValues(self._boundary_object.stencil,
-                                  streaming_pattern=self._boundary_object.streaming_pattern,
-                                  timestep=self._boundary_object.zeroth_timestep,
+        pdf_acc = AccessPdfValues(self._stencil,
+                                  streaming_pattern=self._streaming_pattern,
+                                  timestep=self._zeroth_timestep,
                                   streaming_dir='out')
 
         init_list = []