In unicodeobject.h, you can see: # define PyUnicode_CompareWithASCII PyUnicodeUCS2_CompareASCII ... # define PyUnicode_CompareWithASCII PyUnicodeUCS4_CompareWithASCII ... PyAPI_FUNC(int) PyUnicode_CompareWithASCIIString( PyObject *left, const char *right ); The defines miss the String suffix :-/ Attached patch adds the suffix but I guess that it breaks backward compatibility. Is it a problem to apply this patch in Python 3.2 (but not in Python 3.1)?