diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index f771399c9b..4744d57e24 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -1016,7 +1016,11 @@ static void AdvanceLookAheadPosition(Train *v) if (v->lookahead->current_position == v->lookahead->next_extend_position) { SetTrainReservationLookaheadEnd(v); + + /* This may clear the lookahead if it has become invalid */ TryLongReserveChooseTrainTrackFromReservationEnd(v, true); + if (v->lookahead == nullptr) return; + v->lookahead->SetNextExtendPositionIfUnset(); } }