Use PySequence_Contains() instead of direct access macro.
diff --git a/Objects/setobject.c b/Objects/setobject.c
index 7ad8af0..d817727 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -9,12 +9,6 @@
    All rights reserved.
 */
 
-/* Fast access macros */ 
-
-#define DICT_CONTAINS(d, k)  (d->ob_type->tp_as_sequence->sq_contains(d, k))
-
-/* set object **********************************************************/
-
 static PyObject *
 make_new_set(PyTypeObject *type, PyObject *iterable)
 {
@@ -112,7 +106,7 @@
 static int
 set_contains(PySetObject *so, PyObject *key)
 {
-	return DICT_CONTAINS(so->data, key);
+	return PySequence_Contains(so->data, key);
 }
 
 static PyObject *
@@ -247,7 +241,7 @@
 	selfdata = so->data;
 	tgtdata = result->data;
 	while ((item = PyIter_Next(it)) != NULL) {
-		if (DICT_CONTAINS(selfdata, item)) {
+		if (PySequence_Contains(selfdata, item)) {
 			if (PyDict_SetItem(tgtdata, item, Py_True) == -1) {
 				Py_DECREF(it);
 				Py_DECREF(result);
@@ -287,7 +281,7 @@
 
 	selfdata = so->data;
 	while ((item = PyIter_Next(it)) != NULL) {
-		if (DICT_CONTAINS(selfdata, item)) {
+		if (PySequence_Contains(selfdata, item)) {
 			if (PyDict_SetItem(newdict, item, Py_True) == -1) {
 				Py_DECREF(newdict);
 				Py_DECREF(it);
@@ -517,7 +511,7 @@
 		return NULL;
 
 	while ((item = PyIter_Next(it)) != NULL) {
-		if (DICT_CONTAINS(selfdata, item)) {
+		if (PySequence_Contains(selfdata, item)) {
 			if (PyDict_DelItem(selfdata, item) == -1) {
 				Py_XDECREF(otherset);
 				Py_DECREF(it);
@@ -589,7 +583,7 @@
 
 	otherdata = ((PySetObject *)other)->data;
 	while ((item = PyIter_Next(it)) != NULL) {
-		if (!DICT_CONTAINS(otherdata, item)) {
+		if (!PySequence_Contains(otherdata, item)) {
 			Py_DECREF(it);
 			Py_DECREF(item);
 			Py_RETURN_FALSE;