another instance of #804543: use strdup() when saving the result of setlocale() because it could be overwritten by subsequent setlocale()s.
diff --git a/Modules/python.c b/Modules/python.c
index 9e78889..f6da86f 100644
--- a/Modules/python.c
+++ b/Modules/python.c
@@ -37,7 +37,7 @@
 		fprintf(stderr, "out of memory\n");
 		return 1;
 	}
-	oldloc = setlocale(LC_ALL, NULL);
+	oldloc = strdup(setlocale(LC_ALL, NULL));
 	setlocale(LC_ALL, "");
 	for (i = 0; i < argc; i++) {
 #ifdef HAVE_BROKEN_MBSTOWCS
@@ -67,6 +67,7 @@
 		}
 	}
 	setlocale(LC_ALL, oldloc);
+	free(oldloc);
 	res = Py_Main(argc, argv_copy);
 	for (i = 0; i < argc; i++) {
 		PyMem_Free(argv_copy2[i]);