diff --git a/src/saveload/oldloader_sl.cpp b/src/saveload/oldloader_sl.cpp --- a/src/saveload/oldloader_sl.cpp +++ b/src/saveload/oldloader_sl.cpp @@ -499,7 +499,12 @@ static Town *RemapTown(TileIndex fallbac { /* In some cases depots, industries and stations could refer to a missing town. */ Town *t = Town::GetIfValid(RemapTownIndex(_old_town_index)); - if (t == nullptr) t = CalcClosestTownFromTile(fallback); + if (t == nullptr) { + /* In case the town that was refered to does not exist, find the closest. + * However, this needs the kd-tree to be present. */ + RebuildTownKdtree(); + t = CalcClosestTownFromTile(fallback); + } return t; }