diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 0b96dc1..8159fe8 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -17,15 +17,34 @@
 */
 #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T)
 const char *Py_FileSystemDefaultEncoding = "mbcs";
-const int Py_HasFileSystemDefaultEncoding = 1;
+int Py_HasFileSystemDefaultEncoding = 1;
 #elif defined(__APPLE__)
 const char *Py_FileSystemDefaultEncoding = "utf-8";
-const int Py_HasFileSystemDefaultEncoding = 1;
+int Py_HasFileSystemDefaultEncoding = 1;
 #else
 const char *Py_FileSystemDefaultEncoding = NULL; /* use default */
-const int Py_HasFileSystemDefaultEncoding = 0;
+int Py_HasFileSystemDefaultEncoding = 0;
 #endif
 
+int
+_Py_SetFileSystemEncoding(PyObject *s)
+{
+	PyObject *defenc;
+	if (!PyUnicode_Check(s)) {
+		PyErr_BadInternalCall();
+		return -1;
+	}
+	defenc = _PyUnicode_AsDefaultEncodedString(s, NULL);
+	if (!defenc)
+		return -1;
+	if (!Py_HasFileSystemDefaultEncoding && Py_FileSystemDefaultEncoding)
+		/* A file system encoding was set at run-time */
+		free((char*)Py_FileSystemDefaultEncoding);
+	Py_FileSystemDefaultEncoding = strdup(PyBytes_AsString(defenc));
+	Py_HasFileSystemDefaultEncoding = 0;
+	return 0;
+}
+
 static PyObject *
 builtin___build_class__(PyObject *self, PyObject *args, PyObject *kwds)
 {
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index f4118d6..89f50b5 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -216,7 +216,24 @@
 operating system filenames."
 );
 
+static PyObject *
+sys_setfilesystemencoding(PyObject *self, PyObject *args)
+{
+	PyObject *new_encoding;
+	if (!PyArg_ParseTuple(args, "U:setfilesystemencoding", &new_encoding))
+		return NULL;
+	if (_Py_SetFileSystemEncoding(new_encoding))
+		return NULL;
+	Py_INCREF(Py_None);
+	return Py_None;
+}
 
+PyDoc_STRVAR(setfilesystemencoding_doc,
+"setfilesystemencoding(string) -> None\n\
+\n\
+Set the encoding used to convert Unicode filenames in\n\
+operating system filenames."
+);
 
 static PyObject *
 sys_intern(PyObject *self, PyObject *args)
@@ -872,6 +889,8 @@
 #endif
 	{"setdefaultencoding", sys_setdefaultencoding, METH_VARARGS,
 	 setdefaultencoding_doc},
+	{"setfilesystemencoding", sys_setfilesystemencoding, METH_VARARGS,
+	 setfilesystemencoding_doc},
 	{"setcheckinterval",	sys_setcheckinterval, METH_VARARGS,
 	 setcheckinterval_doc},
 	{"getcheckinterval",	sys_getcheckinterval, METH_NOARGS,
