diff -ruN freeciv.orig/common/game.h freeciv/common/game.h
--- freeciv.orig/common/game.h	Sun Jun 18 00:16:26 2000
+++ freeciv/common/game.h	Mon Jun 19 13:27:07 2000
@@ -304,7 +304,7 @@
 
 #define GAME_DEFAULT_RULESET         "default"
 
-#define GAME_DEFAULT_SKILL_LEVEL 3      /* easy */
+#define GAME_DEFAULT_SKILL_LEVEL 4      /* easy */
 #define GAME_OLD_DEFAULT_SKILL_LEVEL 5  /* normal; for old save games */
 
 #define GAME_DEFAULT_DEMOGRAPHY      "NASRLPEMOqrb"
diff -ruN freeciv.orig/server/stdinhand.c freeciv/server/stdinhand.c
--- freeciv.orig/server/stdinhand.c	Sun Jun 18 00:16:26 2000
+++ freeciv/server/stdinhand.c	Mon Jun 19 14:06:40 2000
@@ -740,6 +740,7 @@
   CMD_METASERVER,
   CMD_AITOGGLE,
   CMD_CREATE,
+  CMD_VERYEASY,
   CMD_EASY,
   CMD_NORMAL,
   CMD_HARD,
@@ -873,6 +874,15 @@
    N_("The 'create' command is only available before the game has "
       "been started.")
   },
+  {"veryeasy",	ALLOW_CTRL,
+   /* translate <> only */
+   N_("veryeasy\n"
+      "veryeasy <player-name>"),
+   N_("Set one or all AI players to 'veryeasy'."),
+   N_("With no arguments, sets all AI players to skill level 'veryeasy', and "
+      "sets the default level for any new AI players to 'veryeasy'.  With an "
+      "argument, sets the skill level for that player only.")
+  },
   {"easy",	ALLOW_CTRL,
    /* translate <> only */
    N_("easy\n"
@@ -1293,8 +1303,8 @@
 ***************************************************************/
 static const char *name_of_skill_level(int level)
 {
-  const char *nm[11] = { "UNUSED", "UNKNOWN", "UNKNOWN", "easy",
-			 "UNKNOWN", "normal", "UNKNOWN", "hard",
+  const char *nm[11] = { "UNUSED", "UNKNOWN", "UNKNOWN", "veryeasy",
+			 "easy", "normal", "UNKNOWN", "hard",
 			 "UNKNOWN", "UNKNOWN", "UNKNOWN" };
   
   assert(level>0 && level<=10);
@@ -1329,7 +1339,7 @@
 **************************************************************************/
 static int fuzzy_of_skill_level(int level)
 {
-  int f[11] = { -1, 0, 0, 300/*easy*/, 0, 0, 0, 0, 0, 0, 0 };
+  int f[11] = { -1, 0, 0, 300/*veryeasy*/, 100/*easy*/, 0, 0, 0, 0, 0, 0 };
   
   assert(level>0 && level<=10);
   return f[level];
@@ -1342,7 +1352,7 @@
 **************************************************************************/
 static int expansionism_of_skill_level(int level)
 {
-  int x[11] = { -1, 100, 100, 30/*easy*/, 100, 100, 100, 100, 100, 100, 100 };
+  int x[11] = { -1, 100, 100, 30/*veryeasy*/, 70/*easy*/, 100, 100, 100, 100, 100, 100 };
   
   assert(level>0 && level<=10);
   return x[level];
@@ -1578,7 +1588,8 @@
 	cmdlevel_name(default_access_level));
 
     fprintf(script_file, "%s\n",
-	(game.skill_level <= 3) ?	"easy" :
+	(game.skill_level <= 3) ?	"veryeasy" :
+	(game.skill_level  = 4) ?	"easy" :
 	(game.skill_level >= 6) ?	"hard" :
 					"normal");
 
@@ -1983,7 +1994,8 @@
   enum m_pre_result match_result;
   struct player *pplayer;
   int i;
-  enum command_id cmd = (level <= 3) ?	CMD_EASY :
+  enum command_id cmd = (level <= 3) ?	CMD_VERYEASY :
+                        (level  = 4) ?	CMD_EASY :
 			(level >= 6) ?	CMD_HARD :
 					CMD_NORMAL;
     /* kludge - these commands ought to be 'set' options really - rp */
@@ -2297,9 +2309,12 @@
   case CMD_LOG:		/* undocumented */
     freelog(LOG_NORMAL, "%s", arg);
     break;
-  case CMD_EASY:
+  case CMD_VERYEASY:
     set_ai_level(caller, arg, 3);
     break;
+  case CMD_EASY:
+    set_ai_level(caller, arg, 4);
+    break;
   case CMD_NORMAL:
     set_ai_level(caller, arg, 5);
     break;
@@ -2641,6 +2656,10 @@
 	_("create P        - creates an AI player"));
   cmd_reply_help(CMD_CUT,
 	_("cut P           - cut connection to player"));
+  cmd_reply_help(CMD_VERYEASY,
+	_("veryeasy        - all AI players will be veryeasy"));
+  cmd_reply_help(CMD_VERYEASY,
+	_("veryeasy P      - AI player will be veryeasy"));
   cmd_reply_help(CMD_EASY,
 	_("easy            - all AI players will be easy"));
   cmd_reply_help(CMD_EASY,