Index: server/plrhand.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/plrhand.c,v retrieving revision 1.316 diff -u -r1.316 plrhand.c --- server/plrhand.c 2 Aug 2004 23:19:36 -0000 1.316 +++ server/plrhand.c 14 Aug 2004 19:34:36 -0000 @@ -308,7 +308,7 @@ advances[tech_found].name, gov->name); } } government_iterate_end; - + if (tech_flag(tech_found, TF_BONUS_TECH) && was_first) { bonus_tech_hack = TRUE; } @@ -320,7 +320,7 @@ upgrade_city_rails(plr, was_discovery); } - /* enhace vision of units inside a fortress */ + /* enhance vision of units inside a fortress */ if (tech_flag(tech_found, TF_WATCHTOWER)) { unit_list_iterate(plr->units, punit) { if (map_has_special(punit->x, punit->y, S_FORTRESS) @@ -398,7 +398,7 @@ "an immediate advance.")); } if (plr->research.researching == A_UNSET) { - choose_random_tech(plr); /* always random tech here */ + choose_random_tech(plr); } tech_researched(plr); } Index: server/cityturn.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/cityturn.c,v retrieving revision 1.256 diff -u -r1.256 cityturn.c --- server/cityturn.c 5 Aug 2004 11:34:18 -0000 1.256 +++ server/cityturn.c 14 Aug 2004 19:34:36 -0000 @@ -979,11 +979,17 @@ "you gain 2 immediate advances."), improvement_types[B_DARWIN].name); + if (pplayer->research.researching == A_UNSET) { + choose_random_tech(pplayer); + } do_free_cost(pplayer); first = pplayer->research.researching; found_new_tech(pplayer, pplayer->research.researching, TRUE, TRUE, A_NONE); + if (pplayer->research.researching == A_UNSET) { + choose_random_tech(pplayer); + } do_free_cost(pplayer); second = pplayer->research.researching; found_new_tech(pplayer, pplayer->research.researching, TRUE, TRUE,