diff --git a/app/lib/pages/default_page.dart b/app/lib/pages/default_page.dart
index 98025185b64c94848c97e6d62058fdd0d8f87bff..62583d7c97fa43e560f00f357c477e6de5379172 100644
--- a/app/lib/pages/default_page.dart
+++ b/app/lib/pages/default_page.dart
@@ -62,15 +62,14 @@ class _DefaultPageState extends State<DefaultPage> {
                   context: context,
                   delegate: CustomSearchDelegate((String result) {
                     // Make request only if the selected lake is different from the current selected lake
-                    if (result != selectedLake) {
-                      setState(() {
-                        //selectedLake = result;
-                        initialiseState(false);
-                      });
+                    //if (result != selectedLake) {
                       Future.microtask(() async { // Reinitialise state with new lake data
-                        selectedLake = result;
+                        await initialiseState(false);
+                        setState(() {
+                          selectedLake = result;
+                        });
                       });
-                    }
+                    //}
                   }),
                 );
               },
diff --git a/app/lib/server_requests/init_state.dart b/app/lib/server_requests/init_state.dart
index 2bc74979604dea2fa5ef89d7f22371b1a6d196bd..e53957c1ecdeec962279f25c357aa10dafc9d338 100644
--- a/app/lib/server_requests/init_state.dart
+++ b/app/lib/server_requests/init_state.dart
@@ -26,7 +26,7 @@ Future<void> initialiseState(bool initNewLake) async {
       List<Measurement> measurements = fetchResult.measurements;
       selectedMeasurements = measurements;
 
-      // Extract all _subdivisions from list of measurements
+      // Extract all subdivisions from list of measurements
       for (Measurement measurement in measurements) {
         for (SubDiv subdivision in measurement.subDivs) {
           selectedSubdivisions.add(subdivision);
@@ -35,10 +35,9 @@ Future<void> initialiseState(bool initNewLake) async {
 
       // Sort the list of SubDiv objects based on each subdivision id
       selectedSubdivisions.sort((a, b) => a.sub_div_id.compareTo(b.sub_div_id));
-
-      print("Loaded from files: Meas.len: ${selectedMeasurements.length}, rel.len: ${selectedRelation.length}");
-
     } else { // Try to fetch measurement data from server
+      selectedSubdivisions.clear(); // Reset subdivision list
+
       markerListFuture = fetchMeasurements().then((fetchResult) {
         List<Measurement> measurements = fetchResult.measurements;
         selectedMeasurements = measurements;
@@ -47,6 +46,7 @@ Future<void> initialiseState(bool initNewLake) async {
         for (Measurement measurement in measurements) {
           for (SubDiv subdivision in measurement.subDivs) {
             selectedSubdivisions.add(subdivision);
+            print("Added subdivision");
           }
         }
 
diff --git a/app/lib/widgets/choropleth_map.dart b/app/lib/widgets/choropleth_map.dart
index 2cf8053e51d5d731269e79db334682c1e6ae1ffe..f0b62d2d753dbd6d7f9814d853fe00abf2d91990 100644
--- a/app/lib/widgets/choropleth_map.dart
+++ b/app/lib/widgets/choropleth_map.dart
@@ -33,13 +33,15 @@ class ChoroplethMapState extends State<ChoroplethMap> {
   late final MapZoomPanBehavior _zoomPanBehavior = MapZoomPanBehavior();
 
   void updateDataSource() {
-    _initDataSource();
+    setState(() {
+      selectedIndex = -1;
+      _initDataSource();
+    });
   }
 
   @override
   void initState() {
     super.initState();
-      selectedIndex = 0;
       _initDataSource();
     }