diff -ruN -X cvs/diff_ignore cleancvs/common/game.h cvs/common/game.h
--- cleancvs/common/game.h	Mon May 29 15:23:23 2000
+++ cvs/common/game.h	Sat Jun  3 00:38:28 2000
@@ -85,6 +85,7 @@
   int add_to_size_limit;
   int spacerace;
   int turnblock;
+  int impeffect;
   int auto_ai_toggle;
   int fogofwar;
   int fogofwar_old;	/* as the fog_of_war bit get changed by setting
diff -ruN -X cvs/diff_ignore cleancvs/server/citytools.c cvs/server/citytools.c
--- cleancvs/server/citytools.c	Mon May 29 15:23:25 2000
+++ cvs/server/citytools.c	Sat Jun  3 16:14:27 2000
@@ -492,22 +492,24 @@
 
 int set_city_shield_bonus(struct city *pcity)
 {
-  int tmp = 0;
+  int shield_bouns = 0;
   if (city_got_building(pcity, B_FACTORY)) {
     if (city_got_building(pcity, B_MFG))
-      tmp = 100;
+      shield_bouns = 100;
     else
-      tmp = 50;
+      shield_bouns = 50;
 
     if (city_affected_by_wonder(pcity, B_HOOVER) ||
         city_got_building(pcity, B_POWER) ||
         city_got_building(pcity, B_HYDRO) ||
         city_got_building(pcity,B_NUCLEAR))
-      tmp *= 1.5;
+      shield_bouns *= 1.5;
   }
 
-  pcity->shield_bonus = tmp + 100;
-  return (tmp + 100);
+  shield_bouns *= game.impeffect;
+  shield_bouns += 100;
+  pcity->shield_bonus = shield_bouns;
+  return shield_bouns;
 }
 
 int city_shield_bonus(struct city *pcity)
@@ -520,7 +522,7 @@
 **************************************************************************/
 int set_city_tax_bonus(struct city *pcity)
 {
-  int tax_bonus = 100;
+  int tax_bonus = 0;
   if (city_got_building(pcity, B_MARKETPLACE)) {
     tax_bonus+=50;
     if (city_got_building(pcity, B_BANK)) {
@@ -529,6 +531,9 @@
 	tax_bonus+=50;
     }
   }
+
+  tax_bonus *= game.impeffect;
+  tax_bonus += 100;
   pcity->tax_bonus = tax_bonus;
   return tax_bonus;
 }
@@ -543,7 +548,7 @@
 **************************************************************************/
 int set_city_science_bonus(struct city *pcity)
 {
-  int science_bonus = 100;
+  int science_bonus = 0;
   if (city_got_building(pcity, B_LIBRARY)) {
     science_bonus+=50;
     if (city_got_building(pcity, B_UNIVERSITY)) {
@@ -556,6 +561,9 @@
     science_bonus+=50;
   if (city_affected_by_wonder(pcity, B_ISAAC))
     science_bonus+=100;
+
+  science_bonus *= game.impeffect;
+  science_bonus += 100;
   pcity->science_bonus = science_bonus;
   return science_bonus;
 }
diff -ruN -X cvs/diff_ignore cleancvs/server/gamehand.c cvs/server/gamehand.c
--- cleancvs/server/gamehand.c	Wed May 17 15:32:06 2000
+++ cvs/server/gamehand.c	Sat Jun  3 00:43:27 2000
@@ -368,6 +368,8 @@
 						 "game.killcitizen");
   game.turnblock = secfile_lookup_int_default(file,game.turnblock,
                          "game.turnblock");
+  game.impeffect = secfile_lookup_int_default(file,game.impeffect,
+                         "game.impeffect");
   game.barbarianrate = secfile_lookup_int_default(file, game.barbarianrate,
 						  "game.barbarians");
   game.onsetbarbarian = secfile_lookup_int_default(file, game.onsetbarbarian,
@@ -590,6 +592,7 @@
   secfile_insert_int(file, game.aqueductloss, "game.aqueductloss");
   secfile_insert_int(file, game.killcitizen, "game.killcitizen");
   secfile_insert_int(file, game.turnblock, "game.turnblock");
+  secfile_insert_int(file, game.impeffect, "game.impeffect");
   secfile_insert_int(file, game.barbarianrate, "game.barbarians");
   secfile_insert_int(file, game.onsetbarbarian, "game.onsetbarbs");
   secfile_insert_int(file, game.occupychance, "game.occupychance");
diff -ruN -X cvs/diff_ignore cleancvs/server/stdinhand.c cvs/server/stdinhand.c
--- cleancvs/server/stdinhand.c	Sun May 28 00:06:25 2000
+++ cvs/server/stdinhand.c	Sat Jun  3 00:37:52 2000
@@ -576,6 +576,12 @@
     N_("If this is set to 1 the game turn is not advanced until all players "
        "have finished their turn, including disconnected players.") },
   
+  { "impeffect", &game.impeffect,
+    SSET_META, SSET_TO_CLIENT,
+    1, 10, 1,
+    N_("Improvement effect modifier"),
+    N_("The effect of city improvements are multiplied bu this number.") },
+  
   { "demography", NULL,
     SSET_META, SSET_TO_CLIENT,
     0, 0, 0,