{ "startupMessage", ArgString, (void *) &appData.message, FALSE, (ArgIniType) "" },
   { "messageSuppress", ArgString, (void *) &appData.suppress, XBOARD, (ArgIniType) "" },
   { "fen", ArgString, (void *) &appData.fen, FALSE, (ArgIniType) "" },
+  { "men", ArgString, (void *) &appData.men, FALSE, (ArgIniType) "" },
 
 #if ZIPPY
   { "zippyTalk", ArgBoolean, (void *) &appData.zippyTalk, FALSE, (ArgIniType) ZIPPY_TALK },
 
           initialRights[i] = filePosition[CASTLING][i];
       startedFromSetupPosition = TRUE;
     }
+    if(*appData.men) LoadPieceDesc(appData.men);
 
     CopyBoard(boards[0], initialPosition);
 
 
        appData.pieceToCharTable = NULL;
        appData.pieceNickNames = "";
        appData.colorNickNames = "";
+       appData.men = "";
         PopDown(TransientDlg);
        Reset(True, True);
         return;
 
     char *r, *p, *q = s;
     int ok = TRUE, promoted, c;
     while(q && *s) {
+printf("pstring = %s\n", s);
        p = s;
        q = strchr(s, ';');
        if(q) *q = 0, s = q+1;
            ASSIGN(pieceDesc[WHITE_TO_BLACK piece], p);
        }
        pieceDefs = TRUE;
+       if(q) *q = ';';
     }
     return ok;
 }
 
       shuffleOpenings = FALSE; /* [HGM] shuffle: possible shuffle reset when we switch */\r
       startedFromPositionFile = FALSE; /* [HGM] loadPos: no longer valid in new variant */\r
       appData.pieceToCharTable = NULL;\r
+      appData.men = "";\r
       Reset(TRUE, TRUE);\r
 \r
       return TRUE;\r