Index: src/water_cmd.cpp
===================================================================
--- src/water_cmd.cpp (revision 27203)
+++ src/water_cmd.cpp (working copy)
@@ -265,6 +265,11 @@
/* lower tile */
WaterClass wc_lower = IsWaterTile(tile - delta) ? GetWaterClass(tile - delta) : WATER_CLASS_CANAL;
+ if (!_settings_game.construction.road_stop_on_competitor_road && !HasTileWaterGround(tile - delta) && GetTileOwner(tile - delta) != OWNER_NONE) {
+ ret = CheckTileOwnership(tile - delta);
+ if (ret.Failed()) return ret;
+ }
+
if (!IsWaterTile(tile - delta)) {
ret = DoCommand(tile - delta, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
if (ret.Failed()) return ret;
@@ -278,6 +283,11 @@
/* upper tile */
WaterClass wc_upper = IsWaterTile(tile + delta) ? GetWaterClass(tile + delta) : WATER_CLASS_CANAL;
+ if (!_settings_game.construction.road_stop_on_competitor_road && !HasTileWaterGround(tile + delta) && GetTileOwner(tile + delta) != OWNER_NONE) {
+ ret = CheckTileOwnership(tile + delta);
+ if (ret.Failed()) return ret;
+ }
+
if (!IsWaterTile(tile + delta)) {
ret = DoCommand(tile + delta, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
if (ret.Failed()) return ret;