diff --git a/src/town_gui.cpp b/src/town_gui.cpp --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -876,11 +876,8 @@ public: */ virtual void OnInvalidateData(int data = 0, bool gui_scope = true) { - if (!gui_scope) return; - /* We can only set the trigger for resorting/rebuilding. - * We cannot safely resort at this point, as there might be multiple scheduled invalidations, - * and a rebuild needs to be done first though it is scheduled later. */ if (data == 0) { + /* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */ this->towns.ForceRebuild(); } else { this->towns.ForceResort();