diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 8f403aa220..91a11119ba 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3233,8 +3233,10 @@ static uint CheckTrainCollision(Vehicle *v, Train *t) /* Happens when there is a train under bridge next to bridge head */ if (abs(v->z_pos - t->z_pos) > 5) return 0; - /* crash both trains */ - return TrainCrashed(t) + TrainCrashed(coll); + /* Crash both trains. Two statements required to guarantee execution + * order because RandomRange() is involved. */ + uint num_victims = TrainCrashed(t); + return num_victims + TrainCrashed(coll); } /**