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)) {
