diff --git a/road_cmd.c b/road_cmd.c --- a/road_cmd.c +++ b/road_cmd.c @@ -386,10 +386,11 @@ do_clear:; } ret = CheckRoadSlope(tileh, &pieces, existing); - if (CmdFailed(ret)) return_cmd_error(STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION); - if (ret != 0 && (!_patches.build_on_slopes || _is_old_ai_player)) { - return CMD_ERROR; - } + /* Return an error if we need to build a foundation (ret != 0) but the + * current patch-setting is turned off (or stupid AI@work) */ + if (CmdFailed(ret) || ret != 0 && (!_patches.build_on_slopes || _is_old_ai_player)) + return_cmd_error(STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION); + cost += ret; if (IsTileType(tile, MP_STREET)) {