Index: src/vehicle.cpp =================================================================== --- src/vehicle.cpp (revision 14262) +++ src/vehicle.cpp (working copy) @@ -252,6 +252,19 @@ } FOR_ALL_VEHICLES(v) { + if (v->type == VEH_DISASTER && !HasBit(1<<0 | 1<<2 | 1<<4 | 1<<6 | 1<<9 | 1<<11 | 1<<13 | 1<<14, v->subtype) && v->Previous() == NULL) { + if (v->next != NULL) { + v->next->previous = v->next->first = v->next; + for (Vehicle *u = v->next->next; u != NULL; u = u->next) { + u->first = v->next; + } + v->next = NULL; + } + new (v->index) InvalidVehicle(); + } + } + + FOR_ALL_VEHICLES(v) { assert(v->first != NULL); if (v->type == VEH_TRAIN && (IsFrontEngine(v) || IsFreeWagon(v))) {