diff -Nur -Xdiff_ignore freeciv_cvs/server/unithand.c freeciv/server/unithand.c --- freeciv_cvs/server/unithand.c Thu Jan 11 14:42:04 2001 +++ freeciv/server/unithand.c Sun Jan 28 17:14:56 2001 @@ -125,7 +125,8 @@ unit_list_iterate(pplayer->units, punit) { if (cost > pplayer->economic.gold) break; - if (punit->type == packet->type && map_get_city(punit->x, punit->y)) { + if (punit->type == packet->type && map_get_city(punit->x, punit->y) && + map_get_city(punit->x, punit->y)->owner == pplayer->player_no) { pplayer->economic.gold -= cost; upgrade_unit(punit, to_unit); @@ -157,6 +158,7 @@ if(!(punit=player_find_unit_by_id(pplayer, packet->unit_id))) return; if(!(pcity=find_city_by_id(packet->city_id))) return; + if(!(pcity->owner == pplayer->player_no)) return; /* Allied city! */ if(punit->x!=pcity->x || punit->y!=pcity->y) { notify_player(pplayer, _("Game: Illegal move, unit not in city!"));