Index: station_cmd.c =================================================================== --- station_cmd.c (revision 4296) +++ station_cmd.c (working copy) @@ -2749,7 +2749,7 @@ SLE_REF(RoadStop,prev, REF_ROADSTOPS), SLE_CONDNULL(4, 0, 24), - SLE_CONDVAR(RoadStop, num_vehicles, SLE_UINT8, 25, SL_MAX_VERSION), + SLE_CONDNULL(1, 25, 25), SLE_END() }; Index: roadveh_cmd.c =================================================================== --- roadveh_cmd.c (revision 4296) +++ roadveh_cmd.c (working copy) @@ -1600,7 +1600,7 @@ CheckOrders(v); //Current slot has expired - if (v->current_order.type == OT_GOTO_STATION && v->u.road.slot_age-- == 0 && v->u.road.slot != NULL) { + if (v->breakdown_ctr == 0 && v->current_order.type == OT_GOTO_STATION && v->u.road.slot_age-- == 0 && v->u.road.slot != NULL) { DEBUG(ms, 2) ("Multistop: Slot expired for vehicle %d (index %d) at stop 0x%x", v->unitnumber, v->index, v->u.road.slot->xy); ClearSlot(v); Index: openttd.c =================================================================== --- openttd.c (revision 4296) +++ openttd.c (working copy) @@ -1402,6 +1402,18 @@ } } + { + RoadStop *rs; + Vehicle *v; + FOR_ALL_ROADSTOPS(rs) { + rs->num_vehicles = 0; + }; + + FOR_ALL_VEHICLES(v) { + if (v->type == VEH_Road && v->u.road.slot != NULL) GetRoadStopByTile(v->dest_tile, v->cargo_type == CT_PASSENGERS ? RS_BUS : RS_TRUCK)->num_vehicles++; + } + } + FOR_ALL_PLAYERS(p) p->avail_railtypes = GetPlayerRailtypes(p->index); return true;