diff -Nur -Xfreecivdiff.ignore freeciv-cvs/client/climisc.c freeciv-patched/client/climisc.c --- freeciv-cvs/client/climisc.c Mon Dec 10 20:18:55 2001 +++ freeciv-patched/client/climisc.c Mon Dec 10 20:59:29 2001 @@ -154,7 +154,7 @@ * (Could used signed short, but int is easier and storage here will * be fairly small.) */ -static int max_cont_used = 0; +static int max_cont_used = -1; static struct athing recyc_conts; /* .n is number available */ static int recyc_init = 0; /* for first init of recyc_conts */ static int *recyc_ptr = NULL; /* set to recyc_conts.ptr (void* vs int*) */ @@ -168,10 +168,8 @@ /* initialize with size first time: */ ath_init(&recyc_conts, sizeof(int)); recyc_init = 1; - update_island_impr_effect(-1,0); - } else { - update_island_impr_effect(max_cont_used,0); } + update_island_impr_effect(max_cont_used,0); ath_free(&recyc_conts); recyc_ptr = NULL; max_cont_used = 0; diff -Nur -Xfreecivdiff.ignore freeciv-cvs/client/packhand.c freeciv-patched/client/packhand.c --- freeciv-cvs/client/packhand.c Mon Dec 10 20:18:38 2001 +++ freeciv-patched/client/packhand.c Mon Dec 10 20:55:57 2001 @@ -557,7 +557,13 @@ pcity->ppl_angry[4] = 0; } - if (city_is_new) improvement_status_init(pcity->improvements); + if (city_is_new) { + /* Initialise list of improvements with City- or Building- equiv_range */ + improvement_status_init(pcity->improvements); + + /* Initialise city's list of improvement effects */ + effect_list_init(&pcity->effects); + } if (packet->capital) { if (pcity->improvements[B_PALACE]==I_NONE)