Index: Modules/main.c =================================================================== --- Modules/main.c (revision 67824) +++ Modules/main.c (working copy) @@ -600,18 +600,21 @@ } if (sts==-1) { - char cfilename[PATH_MAX]; + PyObject *filenameObj = NULL; char *p_cfilename = ""; if (filename) { - size_t r = wcstombs(cfilename, filename, PATH_MAX); - p_cfilename = cfilename; - if (r == (size_t)-1 || r >= PATH_MAX) + filenameObj = PyUnicode_FromWideChar( + filename, wcslen(filename)); + if (filenameObj != NULL) + p_cfilename = _PyUnicode_AsString(filenameObj); + else p_cfilename = ""; } sts = PyRun_AnyFileExFlags( fp, p_cfilename, filename != NULL, &cf) != 0; + Py_XDECREF(filenameObj); } }