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;