diff --git a/polymer/eduke32/source/astub.c b/polymer/eduke32/source/astub.c
index d58b70313..fa9bd593a 100644
--- a/polymer/eduke32/source/astub.c
+++ b/polymer/eduke32/source/astub.c
@@ -69,8 +69,9 @@ char *Help2d[]= {
                     " '4 = MIN FRAMERATE",
 #endif
                     " '7 = Swap tags",
-                    " X  = Flip sector x",
-                    " Y  = Flip sector y",
+                    " 'F = Special functions",
+                    " X  = Horiz. flip selected sects",
+                    " Y  = Vert. flip selected sects",
                     " F5 = Item count",
                     " F6 = Actor count/SE help",
                     " F7 = Edit sector",
@@ -4326,6 +4327,22 @@ static void comlinehelp(void)
     wm_msgbox("Mapster32 Command Line Help",s);
 }
 
+static void addgamepath(const char *buffer)
+{
+    struct strllist *s;
+    s = (struct strllist *)calloc(1,sizeof(struct strllist));
+    s->str = strdup(buffer);
+
+    if (CommandPaths)
+    {
+        struct strllist *t;
+        for (t = CommandPaths; t->next; t=t->next) ;
+        t->next = s;
+        return;
+    }
+    CommandPaths = s;
+}
+
 static void checkcommandline(int argc,char **argv)
 {
     int i = 1;
@@ -4338,6 +4355,16 @@ static void checkcommandline(int argc,char **argv)
             c = argv[i];
             if (((*c == '/') || (*c == '-')))
             {
+                if (!Bstrcasecmp(c+1,"game_dir"))
+                {
+                    if (argc > i+1)
+                    {
+                        addgamepath(argv[i+1]);
+                        i++;
+                    }
+                    i++;
+                    continue;
+                }
                 if (!Bstrcasecmp(c+1,"cfg"))
                 {
                     if (argc > i+1)
@@ -4392,21 +4419,7 @@ static void checkcommandline(int argc,char **argv)
                 case 'J':
                     c++;
                     if (!*c) break;
-                    {
-                        struct strllist *s;
-                        s = (struct strllist *)calloc(1,sizeof(struct strllist));
-                        s->str = strdup(c);
-                        if (CommandPaths)
-                        {
-                            struct strllist *t;
-                            for (t = CommandPaths; t->next; t=t->next) ;
-                            t->next = s;
-                        }
-                        else
-                        {
-                            CommandPaths = s;
-                        }
-                    }
+                    addgamepath(c);
                     break;
                 }
             }
@@ -5813,7 +5826,7 @@ static void FuncMenuOpts(void)
     printext16(8,ydim-STATUS2DSIZ+32,11,-1,snotbuf,0);
     Bsprintf(snotbuf,"Replace invalid tiles");
     printext16(8,ydim-STATUS2DSIZ+48,11,-1,snotbuf,0);
-    Bsprintf(snotbuf,"Mass sprite delete");
+    Bsprintf(snotbuf,"Delete all spr of tile #");
     printext16(8,ydim-STATUS2DSIZ+56,11,-1,snotbuf,0);
     Bsprintf(snotbuf,"Global sky shade");
     printext16(8,ydim-STATUS2DSIZ+64,11,-1,snotbuf,0);
@@ -5821,9 +5834,9 @@ static void FuncMenuOpts(void)
     printext16(8,ydim-STATUS2DSIZ+72,11,-1,snotbuf,0);
     Bsprintf(snotbuf,"Global Z coord shift");
     printext16(8,ydim-STATUS2DSIZ+80,11,-1,snotbuf,0);
-    Bsprintf(snotbuf,"Scale map section up");
+    Bsprintf(snotbuf,"Up-size selected sectors");
     printext16(8,ydim-STATUS2DSIZ+88,11,-1,snotbuf,0);
-    Bsprintf(snotbuf,"Scale map section down");
+    Bsprintf(snotbuf,"Down-size selected sects");
     printext16(8,ydim-STATUS2DSIZ+96,11,-1,snotbuf,0);
     Bsprintf(snotbuf,"Global shade divide");
     printext16(8,ydim-STATUS2DSIZ+104,11,-1,snotbuf,0);
@@ -5993,17 +6006,19 @@ static void FuncMenu(void)
             break;
             case 1:
             {
-                for (i=Bsprintf(disptext,"Mass sprite delete"); i < dispwidth; i++) disptext[i] = ' ';
+                for (i=Bsprintf(disptext,"Delete all spr of tile #"); i < dispwidth; i++) disptext[i] = ' ';
                 if (editval)
                 {
-                    Bsprintf(tempbuf,"Delete all sprites of picnum: ");
+                    Bsprintf(tempbuf,"Delete all sprites of tile #: ");
                     i = getnumber16(tempbuf,-1,MAXSPRITES-1,1);
                     if (i >= 0)
                     {
+                        int k = 0;
                         for (j=0;j<MAXSPRITES-1;j++)
                             if (sprite[j].picnum == i)
-                                deletesprite(j);
-                        printmessage16("Sprites deleted.");
+                                deletesprite(j), k++;
+                        Bsprintf(tempbuf,"%d sprite\(s\) deleted",k);
+                        printmessage16(tempbuf);
                     }
                     else printmessage16("Aborted");
                 }
@@ -6067,10 +6082,10 @@ static void FuncMenu(void)
             break;
             case 5:
             {
-                for (i=Bsprintf(disptext,"Scale map section up"); i < dispwidth; i++) disptext[i] = ' ';
+                for (i=Bsprintf(disptext,"Up-size selected sectors"); i < dispwidth; i++) disptext[i] = ' ';
                 if (editval)
                 {
-                    j=getnumber16("Map size multiplier:    ",1,8,0);
+                    j=getnumber16("Size multiplier:    ",1,8,0);
                     if (j!=1)
                     {
                         int k, l, w, currsector, start_wall, end_wall;
@@ -6111,10 +6126,10 @@ static void FuncMenu(void)
             break;
             case 6:
             {
-                for (i=Bsprintf(disptext,"Scale map section down"); i < dispwidth; i++) disptext[i] = ' ';
+                for (i=Bsprintf(disptext,"Down-size selected sects"); i < dispwidth; i++) disptext[i] = ' ';
                 if (editval)
                 {
-                    j=getnumber16("Map size divisor:    ",1,8,0);
+                    j=getnumber16("Size divisor:    ",1,8,0);
                     if (j!=1)
                     {
                         int k, l, w, currsector, start_wall, end_wall;