Index: src/init2.c
--- src/init2.c.orig
+++ src/init2.c
@@ -226,10 +226,10 @@ void configchoice(void *opt, char *cmd, char *arg1, ch
     return;
   }
 
-  if (STREQ(cmdend - 6, "SORTBY"))
+  if ((cmd <= (cmdend - 6)) && STREQ(cmdend - 6, "SORTBY"))
     choices = sortbychoices;
 #ifndef NOGRAPHICS
-  else if (STREQ(cmdend - 5, "CHART"))
+  else if ((cmd <= (cmdend - 5)) && STREQ(cmdend - 5, "CHART"))
     choices = chartchoices;
 #endif
   else if (STREQ(cmd, "OUTPUT"))
@@ -242,7 +242,7 @@ void configchoice(void *opt, char *cmd, char *arg1, ch
     choices = langchoices;
   else if (STREQ(cmd, "GOTOS"))
     choices = gotochoices;
-  else if (STREQ(cmdend - 4, "CASE")) {
+  else if ((cmd <= (cmdend - 4)) && STREQ(cmdend - 4, "CASE")) {
     choices = casechoices;
     islog = TRUE;
   }
