diff --git a/python/lbmpy_walberla/additional_data_handler.py b/python/lbmpy_walberla/additional_data_handler.py
index 692d0cf57d3e905537d3cbd1af445c26c64074bc..102177487690f533822ac389df1d483e3e59ae42 100644
--- a/python/lbmpy_walberla/additional_data_handler.py
+++ b/python/lbmpy_walberla/additional_data_handler.py
@@ -1,7 +1,7 @@
 from pystencils import Target
 from pystencils.stencil import inverse_direction
 
-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
@@ -26,7 +26,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)
 
     @property
@@ -110,7 +109,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
@@ -146,14 +144,18 @@ class UBBAdditionalDataHandler(AdditionalDataHandler):
 
 
 class OutflowAdditionalDataHandler(AdditionalDataHandler):
-    def __init__(self, stencil, boundary_object, target=Target.CPU, field_name='pdfs'):
+    def __init__(self, stencil, boundary_object, target=Target.CPU, field_name='pdfs', 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
         self._field_name = field_name
         self._target = target
+        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, \
@@ -174,9 +176,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 = []