Index: client/agents/cma_core.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/agents/cma_core.c,v retrieving revision 1.23 diff -u -r1.23 cma_core.c --- client/agents/cma_core.c 2002/06/08 11:00:09 1.23 +++ client/agents/cma_core.c 2002/06/09 08:30:22 @@ -874,7 +874,7 @@ pcity->ppl_taxman = result->taxmen; /* Do a local recalculation of the city */ - generic_city_refresh(pcity); + generic_city_refresh(pcity, FALSE); copy_stats(pcity, result); Index: common/city.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/city.c,v retrieving revision 1.161 diff -u -r1.161 city.c --- common/city.c 2002/06/08 10:56:38 1.161 +++ common/city.c 2002/06/09 08:30:25 @@ -1978,7 +1978,8 @@ /************************************************************************** ... **************************************************************************/ -void generic_city_refresh(struct city *pcity) +void generic_city_refresh(struct city *pcity, + bool refresh_trade_route_cities) { int prev_tile_trade = pcity->tile_trade; @@ -1993,14 +1994,14 @@ citizen_happy_wonders(pcity); /* happy wonders & fundamentalism */ unhappy_city_check(pcity); - if (pcity->tile_trade != prev_tile_trade) { + if (refresh_trade_route_cities && pcity->tile_trade != prev_tile_trade) { int i; for (i = 0; i < NUM_TRADEROUTES; i++) { struct city *pcity2 = find_city_by_id(pcity->trade[i]); if (pcity2) { - generic_city_refresh(pcity2); + generic_city_refresh(pcity2, FALSE); } } } Index: common/city.h =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/city.h,v retrieving revision 1.108 diff -u -r1.108 city.h --- common/city.h 2002/06/07 04:25:59 1.108 +++ common/city.h 2002/06/09 08:30:25 @@ -440,7 +440,8 @@ void city_remove_improvement(struct city *pcity,Impr_Type_id impr); /* city update functions */ -void generic_city_refresh(struct city *pcity); +void generic_city_refresh(struct city *pcity, + bool refresh_trade_route_cities); void adjust_city_free_cost(int *num_free, int *this_cost); int city_corruption(struct city *pcity, int trade); int city_specialists(struct city *pcity); /* elv+tax+scie */ Index: server/cityturn.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/cityturn.c,v retrieving revision 1.190 diff -u -r1.190 cityturn.c --- server/cityturn.c 2002/05/12 16:54:24 1.190 +++ server/cityturn.c 2002/06/09 08:30:28 @@ -83,7 +83,7 @@ **************************************************************************/ void city_refresh(struct city *pcity) { - generic_city_refresh(pcity); + generic_city_refresh(pcity, TRUE); /* AI would calculate this 1000 times otherwise; better to do it once -- Syela */ pcity->ai.trade_want =