case 't': k = '\t'; break;\r
             }\r
             languageBuf[--i] = k;\r
-\r
-\r
-\r
         }\r
         i++;\r
     }\r
 {\r
   UINT number = 0;\r
   FILE *f;\r
-  char fileTitle[MSG_SIZ];\r
+  char fileTitle[MSG_SIZ], dir[MSG_SIZ];\r
+  GetCurrentDirectory(MSG_SIZ, dir);\r
   f = OpenFileDialog(hwnd, "rb", "",\r
                     appData.oldSaveStyle ? "gam" : "pgn",\r
                     GAME_FILT,\r
                     title, &number, fileTitle, NULL);\r
+  SetCurrentDirectory(MSG_SIZ, dir);\r
   if (f != NULL) {\r
     cmailMsgLoaded = FALSE;\r
     if (number == 0) {\r
   char *defName;\r
   FILE *f;\r
   UINT number;\r
-  char fileTitle[MSG_SIZ];\r
+  char fileTitle[MSG_SIZ], dir[MSG_SIZ];\r
   static SnapData sd;\r
   static int peek=0;\r
 \r
         Reset(FALSE, TRUE);\r
       }\r
       number = 1;\r
+      GetCurrentDirectory(MSG_SIZ, dir);\r
       f = OpenFileDialog(hwnd, "rb", "",\r
                         appData.oldSaveStyle ? "pos" : "fen",\r
                         POSITION_FILT,\r
                         _("Load Position from File"), &number, fileTitle, NULL);\r
+      SetCurrentDirectory(MSG_SIZ, dir);\r
       if (f != NULL) {\r
        LoadPosition(f, number, fileTitle);\r
       }\r
 \r
     case IDM_SaveGame:\r
       defName = DefaultFileName(appData.oldSaveStyle ? "gam" : "pgn");\r
+      GetCurrentDirectory(MSG_SIZ, dir);\r
       f = OpenFileDialog(hwnd, "a", defName,\r
                         appData.oldSaveStyle ? "gam" : "pgn",\r
                         GAME_FILT,\r
                         _("Save Game to File"), NULL, fileTitle, NULL);\r
+      SetCurrentDirectory(MSG_SIZ, dir);\r
       if (f != NULL) {\r
        SaveGame(f, 0, "");\r
       }\r
 \r
     case IDM_SavePosition:\r
       defName = DefaultFileName(appData.oldSaveStyle ? "pos" : "fen");\r
+      GetCurrentDirectory(MSG_SIZ, dir);\r
       f = OpenFileDialog(hwnd, "a", defName,\r
                         appData.oldSaveStyle ? "pos" : "fen",\r
                         POSITION_FILT,\r
                         _("Save Position to File"), NULL, fileTitle, NULL);\r
+      SetCurrentDirectory(MSG_SIZ, dir);\r
       if (f != NULL) {\r
        SavePosition(f, 0, "");\r
       }\r
 \r
     case IDM_SaveDiagram:\r
       defName = "diagram";\r
+      GetCurrentDirectory(MSG_SIZ, dir);\r
       f = OpenFileDialog(hwnd, "wb", defName,\r
                         "bmp",\r
                         DIAGRAM_FILT,\r
                         _("Save Diagram to File"), NULL, fileTitle, NULL);\r
+      SetCurrentDirectory(MSG_SIZ, dir);\r
       if (f != NULL) {\r
        SaveDiagram(f);\r
       }\r
       break;\r
 \r
     case IDM_SaveSelected:\r
+      GetCurrentDirectory(MSG_SIZ, dir);\r
       f = OpenFileDialog(hwnd, "a", "",\r
                         "pgn",\r
                         GAME_FILT,\r
                         _("Save Game to File"), NULL, fileTitle, NULL);\r
+      SetCurrentDirectory(MSG_SIZ, dir);\r
       if (f != NULL) {\r
        SaveSelected(f, 0, "");\r
       }\r
 {\r
   char *defName;\r
   FILE *f;\r
-  char fileTitle[MSG_SIZ];\r
+  char fileTitle[MSG_SIZ], dir[MSG_SIZ];\r
 \r
   defName = DefaultFileName(appData.oldSaveStyle ? "gam" : "pgn");\r
+  GetCurrentDirectory(MSG_SIZ, dir);\r
   f = OpenFileDialog(hwndMain, "a", defName,\r
                     appData.oldSaveStyle ? "gam" : "pgn",\r
                     GAME_FILT, \r
                     _("Save Game to File"), NULL, fileTitle, NULL);\r
+  GetCurrentDirectory(MSG_SIZ, dir);\r
   if (f != NULL) {\r
     SaveGame(f, 0, "");\r
     fclose(f);\r
       case 1: res = LockFileEx(hFile, LOCKFILE_EXCLUSIVE_LOCK, 0, 1024, 0, &ov); break;   // LOCK_SH\r
       case 2: res = LockFileEx(hFile, LOCKFILE_EXCLUSIVE_LOCK, 0, 1024, 0, &ov); break;   // LOCK_EX\r
       case 3: res = UnlockFileEx(hFile, 0, 1024, 0, &ov); break; // LOCK_UN\r
+\r
       default: return -1;\r
     }\r
     return -!res;\r