Index: src/timetable_cmd.cpp =================================================================== --- src/timetable_cmd.cpp (revision 16577) +++ src/timetable_cmd.cpp (working copy) @@ -233,6 +233,10 @@ v->lateness_counter -= (timetabled - time_taken); + /* Reset vehicle delay if it becomes larger than the duration of the timetable, + * because then we are back in the normal timetable loop. */ + v->lateness_counter %= v->orders.list->GetTimetableDurationIncomplete(); + for (v = v->FirstShared(); v != NULL; v = v->NextShared()) { InvalidateWindow(WC_VEHICLE_TIMETABLE, v->index); }