diff --git a/src/Algorithms/ParallelTTracker.cpp b/src/Algorithms/ParallelTTracker.cpp
index 909b5d182282920d7fc981f5c0dbc73d4134e5a6..cd14fd196151517f4cda30cb4b377f3852fbd76f 100644
--- a/src/Algorithms/ParallelTTracker.cpp
+++ b/src/Algorithms/ParallelTTracker.cpp
@@ -247,7 +247,7 @@ void ParallelTTracker::execute() {
                       -rmin(2),
                       itsBunch_m->getT(),
                       (back_track? -minTimeStep: minTimeStep),
-                      stepSizes_m.getFinalZStop() + 2 * rmax(2),
+                      stepSizes_m.getFinalZStop() + std::copysign(1.0, itsBunch_m->getdT()) * 2 * rmax(2),
                       itsOpalBeamline_m);
 
     oth.execute();