diff -BbuprN -x '*.o' /home/zizazat/tmp/glimblade/gen/src/class.c gen/src/class.c
--- /home/zizazat/tmp/glimblade/gen/src/class.c	2004-02-29 12:40:35.000000000 -0600
+++ gen/src/class.c	2004-05-10 19:31:02.000000000 -0500
@@ -1472,7 +1472,7 @@ void do_start(struct char_data *ch)
     SET_BIT_AR(AFF_FLAGS(ch), AFF_INFRAVISION);
 
   set_title(ch, NULL);
-  roll_real_abils(ch);
+  /* roll_real_abils(ch); */
 
   GET_MAX_HIT(ch)  = 10;
   GET_MAX_MANA(ch) = 100;
diff -BbuprN -x '*.o' /home/zizazat/tmp/glimblade/gen/src/constants.c gen/src/constants.c
--- /home/zizazat/tmp/glimblade/gen/src/constants.c	2004-05-01 18:16:18.000000000 -0500
+++ gen/src/constants.c	2004-05-10 19:16:21.000000000 -0500
@@ -342,6 +342,7 @@ const char *connected_types[] = {
   "Race help",
   "Class help",
   "Guild edit",
+  "Reroll stats",
   "\n"
 };
 
diff -BbuprN -x '*.o' /home/zizazat/tmp/glimblade/gen/src/db.c gen/src/db.c
--- /home/zizazat/tmp/glimblade/gen/src/db.c	2004-03-30 19:59:52.000000000 -0600
+++ gen/src/db.c	2004-05-10 19:40:44.000000000 -0500
@@ -3777,13 +3777,13 @@ void init_char(struct char_data *ch)
   for (i = 0; i < 5; i++)
     GET_SAVE(ch, i) = 0;
 
-  ch->real_abils.intel = 25;
+/*  ch->real_abils.intel = 25;
   ch->real_abils.wis = 25;
   ch->real_abils.dex = 25;
   ch->real_abils.str = 25;
   ch->real_abils.str_add = 100;
   ch->real_abils.con = 25;
-  ch->real_abils.cha = 25;
+  ch->real_abils.cha = 25; */
 
   for (i = 0; i < 3; i++)
     GET_COND(ch, i) = (GET_LEVEL(ch) == LVL_IMPL ? -1 : 24);
diff -BbuprN -x '*.o' /home/zizazat/tmp/glimblade/gen/src/interpreter.c gen/src/interpreter.c
--- /home/zizazat/tmp/glimblade/gen/src/interpreter.c	2004-05-01 18:16:04.000000000 -0500
+++ gen/src/interpreter.c	2004-05-10 19:34:53.000000000 -0500
@@ -72,6 +72,7 @@ extern const char *class_display[];
 extern const char *race_display[];
 void gedit_disp_menu(struct descriptor_data *d);
 void gedit_parse(struct descriptor_data *d, char *arg);
+void roll_real_abils(struct char_data *ch);
 
 /* local functions */
 int perform_dupe_check(struct descriptor_data *d);
@@ -1876,6 +1877,29 @@ void nanny(struct descriptor_data *d, ch
     } else
       GET_CLASS(d->character) = load_result;
 
+    write_to_output(d, "\r\nPress enter to roll your stats.");
+    STATE(d) = CON_QROLLSTATS;
+    break;
+
+  case CON_QROLLSTATS:
+    switch (*arg) {
+      case 'y':
+      case 'Y':
+        break;
+      case 'n':
+      case 'N':
+      default:
+        roll_real_abils(d->character);
+        write_to_output(d, "\r\nStr: [%d/%d] Int: [%d] Wis: [%d] Dex:"
+           " [%d] Con: [%d] Cha: [%d]",
+           GET_STR(d->character), GET_ADD(d->character),
+           GET_INT(d->character), GET_WIS(d->character),
+           GET_DEX(d->character), GET_CON(d->character),
+           GET_CHA(d->character));
+        write_to_output(d, "\r\n\r\nKeep these stats? (y/N)");
+        return;
+    }
+
     if (GET_PFILEPOS(d->character) < 0)
       GET_PFILEPOS(d->character) = create_entry(GET_PC_NAME(d->character));
     /* Now GET_NAME() will work properly. */
diff -BbuprN -x '*.o' /home/zizazat/tmp/glimblade/gen/src/structs.h gen/src/structs.h
--- /home/zizazat/tmp/glimblade/gen/src/structs.h	2004-05-01 18:10:59.000000000 -0500
+++ gen/src/structs.h	2004-05-10 19:16:02.000000000 -0500
@@ -321,6 +321,7 @@
 #define CON_CLASS_HELP   30	/* Class Help 				*/
 #define CON_QANSI		 31	/* Ask for ANSI support     */
 #define CON_GEDIT	 32	/* OLC mode - guild editor 		*/
+#define CON_QROLLSTATS	 33	/* OLC mode - guild editor 		*/
 
 /* Character equipment positions: used as index for char_data.equipment[] */
 /* NOTE: Don't confuse these constants with the ITEM_ bitvectors
