Accept only the system default encoding when converting Python
strings to CF strings. Fixes 682215.
diff --git a/Mac/Modules/cf/_CFmodule.c b/Mac/Modules/cf/_CFmodule.c
index 4f5d935..8473eb5 100644
--- a/Mac/Modules/cf/_CFmodule.c
+++ b/Mac/Modules/cf/_CFmodule.c
@@ -14,9 +14,9 @@
 
 /* Macro to test whether a weak-loaded CFM function exists */
 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL )  {\
-    	PyErr_SetString(PyExc_NotImplementedError, \
-    	"Not available in this shared library/OS version"); \
-    	return NULL; \
+        PyErr_SetString(PyExc_NotImplementedError, \
+        "Not available in this shared library/OS version"); \
+        return NULL; \
     }} while(0)
 
 
@@ -1458,7 +1458,7 @@
 	if (v == Py_None) { *p_itself = NULL; return 1; }
 	if (PyString_Check(v)) {
 	    char *cStr = PyString_AsString(v);
-		*p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, 0);
+		*p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, kCFStringEncodingASCII);
 		return 1;
 	}
 	if (PyUnicode_Check(v)) {
diff --git a/Mac/Modules/cf/cfsupport.py b/Mac/Modules/cf/cfsupport.py
index 973c4d4..bb0ac40 100644
--- a/Mac/Modules/cf/cfsupport.py
+++ b/Mac/Modules/cf/cfsupport.py
@@ -359,8 +359,10 @@
 		Out("""
 		if (v == Py_None) { *p_itself = NULL; return 1; }
 		if (PyString_Check(v)) {
-		    char *cStr = PyString_AsString(v);
-			*p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, 0);
+		    char *cStr;
+		    if (!PyArg_Parse(v, "et", "ascii", &cStr))
+		    	return NULL;
+			*p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, kCFStringEncodingASCII);
 			return 1;
 		}
 		if (PyUnicode_Check(v)) {
diff --git a/Mac/Modules/cf/pycfbridge.c b/Mac/Modules/cf/pycfbridge.c
index 00efa72..d4466ac 100644
--- a/Mac/Modules/cf/pycfbridge.c
+++ b/Mac/Modules/cf/pycfbridge.c
@@ -292,8 +292,9 @@
 	UniChar *unichars;
 	
 	if (PyString_Check(src)) {
-		if ((chars = PyString_AsString(src)) == NULL ) goto err;
-		*dst = CFStringCreateWithCString((CFAllocatorRef)NULL, chars, 0);
+		if (!PyArg_Parse(src, "es", NULL, &chars))
+			return NULL; /* This error is more descriptive than the general one below */
+		*dst = CFStringCreateWithCString((CFAllocatorRef)NULL, chars, kCFStringEncodingASCII);
 		return 1;
 	}
 	if (PyUnicode_Check(src)) {