diff --git a/server/map/__pycache__/get_relation.cpython-311.pyc b/server/map/__pycache__/get_relation.cpython-311.pyc
index fe7ed5abeb7016ab5d41377e8865cbfaade3f704..c02d4b335fff30f0ab474427196c1571b4382e6a 100644
Binary files a/server/map/__pycache__/get_relation.cpython-311.pyc and b/server/map/__pycache__/get_relation.cpython-311.pyc differ
diff --git a/server/map/get_relation.py b/server/map/get_relation.py
index b63bc4292696cf1cd9d8492d881b72d63c77643b..7f59fd80fe47a840f87f872b413afeb082482cac 100644
--- a/server/map/get_relation.py
+++ b/server/map/get_relation.py
@@ -105,23 +105,25 @@ def cut_polygon_in_two(polygon: Polygon, divisor: float, cell_size: float):
     if cell_size > 0:  # Horizontal split
         for point in exterior_coords:
             point = Point(point)  # Convert coordinates to Shapely Point object
-            if point.y < divisor:
-                split_shape.append(point)
+            if point.y < divisor:  # Check if point is over or below divisor
+                split_shape.append(point)  # Append to appropriate shape
             else:
                 remaining_shape.append(point)
 
         if len(split_shape) > 2:
             # Get last point added to
-            last_point = split_shape[len(split_shape)-2]
+            last_point = split_shape[-1]
             # Get length of the newly created edge
             new_edge_len = abs(last_point.x - split_shape[0].x)
-            print("new_edge_len: ", new_edge_len, "    cell_size: ", cell_size)
-            x_val = new_edge_len-cell_size
+            print("new_edge_len: ", new_edge_len, "    cell_size: ", cell_size, "   last_point.x: ", last_point.x,  "   split_shape[0].x: ", split_shape[0].x)
 
             # Add points along the new edge to allow horizontal sections to be split into vertical ones
             while new_edge_len > cell_size:
-                split_shape.insert(0, (x_val, last_point.y)) # NB may have to add/subtract small offset of 0.00001
+                x_val = new_edge_len - cell_size
+
+                split_shape.insert(0, (x_val, last_point.y))  # NB may have to add/subtract small offset of 0.00001
                 remaining_shape.insert(0, (x_val, last_point.y))  # Prepend
+
                 new_edge_len -= cell_size
 
     else:  # Vertical split