diff --git a/src/pbs.cpp b/src/pbs.cpp index e7834ef809..e3b8fa9619 100644 --- a/src/pbs.cpp +++ b/src/pbs.cpp @@ -287,6 +287,11 @@ PBSTileInfo FollowTrainReservation(const Train *v, Vehicle **train_on_res) if (ftoti.best != NULL) *train_on_res = ftoti.best->First(); } } + if (*train_on_res == NULL && IsTileType(ftoti.res.tile, MP_TUNNELBRIDGE)) { + /* The target tile is a bridge/tunnel, also check the other end tile. */ + FindVehicleOnPos(GetOtherTunnelBridgeEnd(ftoti.res.tile), &ftoti, FindTrainOnTrackEnum); + if (ftoti.best != NULL) *train_on_res = ftoti.best->First(); + } } return ftoti.res; }