diff --git a/src/simulation.cpp b/src/simulation.cpp index e218cdb2928..2d5d75aa477 100644 --- a/src/simulation.cpp +++ b/src/simulation.cpp @@ -762,13 +762,15 @@ void transport_history_based_single_particle(Particle& p) { while (p.alive()) { p.event_calculate_xs(); - if (!p.alive()) - break; - p.event_advance(); - if (p.collision_distance() > p.boundary().distance) { - p.event_cross_surface(); - } else { - p.event_collide(); + if (p.alive()) { + p.event_advance(); + } + if (p.alive()) { + if (p.collision_distance() > p.boundary().distance) { + p.event_cross_surface(); + } else if (p.alive()) { + p.event_collide(); + } } p.event_revive_from_secondary(); }