diff --git a/Mac/Modules/cf/cfscan.py b/Mac/Modules/cf/cfscan.py
index be11dba..d6613ae 100644
--- a/Mac/Modules/cf/cfscan.py
+++ b/Mac/Modules/cf/cfscan.py
@@ -15,6 +15,7 @@
 		"CFDictionaryRef", "CFMutableDictionaryRef",
 		"CFStringRef", "CFMutableStringRef",
 		"CFURLRef",
+##		"CFPropertyListRef",
 		)
 # ADD object typenames here
 
@@ -31,7 +32,7 @@
 ##		"CFNumber.h",
 ##		"CFPlugIn.h",
 ##		"CFPreferences.h",
-##		"CFPropertyList.h",
+		"CFPropertyList.h",
 ##		"CFSet.h",
 		"CFString.h",
 ##		"CFStringEncodingExt.h",
@@ -130,6 +131,9 @@
 			([("CFURLRef", "baseURL", "InMode")],
 			 [("OptionalCFURLRef", "*", "*")]),
 			 
+			# We handle CFPropertyListRef objects as plain CFTypeRef
+			([("CFPropertyListRef", "*", "*")],
+			 [("CFTypeRef", "*", "*")]),
 			]
 			
 if __name__ == "__main__":
diff --git a/Mac/Modules/cf/cfsupport.py b/Mac/Modules/cf/cfsupport.py
index d690441..b2ff3e1 100644
--- a/Mac/Modules/cf/cfsupport.py
+++ b/Mac/Modules/cf/cfsupport.py
@@ -49,6 +49,7 @@
 #include <CFDictionary.h>
 #include <CFString.h>
 #include <CFURL.h>
+#include <CFPropertyList.h>
 #else
 #include <CoreServices/CoreServices.h>
 #endif
@@ -195,6 +196,7 @@
 CFMutableStringRef = OpaqueByValueType("CFMutableStringRef", "CFMutableStringRefObj")
 CFURLRef = OpaqueByValueType("CFURLRef", "CFURLRefObj")
 OptionalCFURLRef  = OpaqueByValueType("CFURLRef", "OptionalCFURLRefObj")
+##CFPropertyListRef = OpaqueByValueType("CFPropertyListRef", "CFTypeRefObj")
 # ADD object type here
 
 # Our (opaque) objects
@@ -301,6 +303,18 @@
 class CFDataRefObjectDefinition(MyGlobalObjectDefinition):
 	basechain = "&CFTypeRefObj_chain"
 	
+	def outputCheckConvertArg(self):
+		Out("""
+		if (v == Py_None) { *p_itself = NULL; return 1; }
+		if (PyString_Check(v)) {
+		    char *cStr;
+		    int cLen;
+		    if( PyString_AsStringAndSize(v, &cStr, &cLen) < 0 ) return 0;
+		    *p_itself = CFDataCreate((CFAllocatorRef)NULL, (unsigned char *)cStr, cLen);
+		    return 1;
+		}
+		""")
+
 	def outputRepr(self):
 		Output()
 		Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
@@ -491,6 +505,21 @@
 return PyCF_CF2Python(_self->ob_itself);
 """
 
+# Get data from CFDataRef
+getasdata_body = """
+int size = CFDataGetLength(_self->ob_itself);
+char *data = (char *)CFDataGetBytePtr(_self->ob_itself);
+
+_res = (PyObject *)PyString_FromStringAndSize(data, size);
+return _res;
+"""
+
+f = ManualGenerator("CFDataGetData", getasdata_body);
+f.docstring = lambda: "() -> (string _rv)"
+CFDataRef_object.add(f)
+
+
+
 f = ManualGenerator("toPython", toPython_body);
 f.docstring = lambda: "() -> (python_object)"
 CFTypeRef_object.add(f)
