diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3296,8 +3296,8 @@ static void TrainController(Train *v, Ve * - for tunnels, only the part when the vehicle is not visible (part of enter/exit tile too) * - for bridges, only the middle part - without the bridge heads */ if (!(v->vehstatus & VS_HIDDEN)) { - v->cur_speed = - min(v->cur_speed, GetBridgeSpec(GetBridgeType(v->tile))->speed); + Train *first = v->First(); + first->cur_speed = min(first->cur_speed, GetBridgeSpec(GetBridgeType(v->tile))->speed); } if (IsTileType(gp.new_tile, MP_TUNNELBRIDGE) && HasBit(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) {