Index: src/screenshot.cpp =================================================================== --- src/screenshot.cpp (revision 10111) +++ src/screenshot.cpp (working copy) @@ -505,6 +505,17 @@ GetString(_screenshot_name, STR_4004, lastof(_screenshot_name)); } + char invalid[] = ":/\\*?"; + for (uint i = 0; i < sizeof(_screenshot_name); i++) { + for (uint j = 0; j < 5; j++) { + if (_screenshot_name[i] == invalid[j]) { + _screenshot_name[i] = '_'; + break; + } + if (_screenshot_name[i] == '_') break; + } + } + base = strchr(_screenshot_name, 0); base[0] = '.'; strcpy(base + 1, ext); Index: src/misc_gui.cpp =================================================================== --- src/misc_gui.cpp (revision 10111) +++ src/misc_gui.cpp (working copy) @@ -1396,6 +1415,17 @@ SetDParam(1, p->name_2); SetDParam(2, _date); GetString(_edit_str_buf, STR_4004, lastof(_edit_str_buf)); + + char invalid[] = ":/\\*?"; + for (uint i = 0; i < sizeof(_edit_str_buf); i++) { + for (uint j = 0; j < 5; j++) { + if (_edit_str_buf[i] == invalid[j]) { + _edit_str_buf[i] = '_'; + break; + } + if (_edit_str_buf[i] == '_') break; + } + } } extern void StartupEngines();