I had PyArg_ParseTuple(args, "s#s#i:compare", &p1, &bytes1, &p2, &bytes2) in a program. There are not enough arguments to PyArg_ParseTuple. Does PyArg_ParseTuple know how many arguments it is getting? If so, I suggest that an exception should be raised here.