PyErr_SetFromErrnoWithFilename() decodes the filename using
PyUnicode_DecodeFSDefault() instead of PyUnicode_FromString()
diff --git a/Python/errors.c b/Python/errors.c
index 062658d..274bdbe 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -446,7 +446,7 @@
 PyObject *
 PyErr_SetFromErrnoWithFilename(PyObject *exc, const char *filename)
 {
-	PyObject *name = filename ? PyUnicode_FromString(filename) : NULL;
+	PyObject *name = filename ? PyUnicode_DecodeFSDefault(filename) : NULL;
 	PyObject *result = PyErr_SetFromErrnoWithFilenameObject(exc, name);
 	Py_XDECREF(name);
 	return result;