diff --git a/Modules/newmodule.c b/Modules/newmodule.c
index 9a9cbf1..6c29fe4 100644
--- a/Modules/newmodule.c
+++ b/Modules/newmodule.c
@@ -153,12 +153,7 @@
 		Py_DECREF(empty);
 	}
 
-	pb = code->ob_type->tp_as_buffer;
-	if (pb == NULL ||
-	    pb->bf_getreadbuffer == NULL ||
-	    pb->bf_getsegcount == NULL ||
-	    (*pb->bf_getsegcount)(code, NULL) != 1)
-	{
+	if (!PyObject_CheckReadBuffer(code)) {
 		PyErr_SetString(PyExc_TypeError,
 		  "bytecode object must be a single-segment read-only buffer");
 		return NULL;
diff --git a/Python/compile.c b/Python/compile.c
index 1a46064..b477513 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -268,7 +268,6 @@
 {
 	PyCodeObject *co;
 	int i;
-	PyBufferProcs *pb;
 	/* Check argument types */
 	if (argcount < 0 || nlocals < 0 ||
 	    code == NULL ||
@@ -279,16 +278,8 @@
 	    cellvars == NULL || !PyTuple_Check(cellvars) ||
 	    name == NULL || !PyString_Check(name) ||
 	    filename == NULL || !PyString_Check(filename) ||
-		lnotab == NULL || !PyString_Check(lnotab)) {
-		PyErr_BadInternalCall();
-		return NULL;
-	}
-	pb = code->ob_type->tp_as_buffer;
-	if (pb == NULL ||
-	    pb->bf_getreadbuffer == NULL ||
-	    pb->bf_getsegcount == NULL ||
-	    (*pb->bf_getsegcount)(code, NULL) != 1)
-	{
+	    lnotab == NULL || !PyString_Check(lnotab) ||
+	    !PyObject_CheckReadBuffer(code)) {
 		PyErr_BadInternalCall();
 		return NULL;
 	}
diff --git a/Python/marshal.c b/Python/marshal.c
index 806b91c..0d21e84 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -108,7 +108,6 @@
 w_object(PyObject *v, WFILE *p)
 {
 	int i, n;
-	PyBufferProcs *pb;
 
 	p->depth++;
 
@@ -249,13 +248,10 @@
 		w_short(co->co_firstlineno, p);
 		w_object(co->co_lnotab, p);
 	}
-	else if ((pb = v->ob_type->tp_as_buffer) != NULL &&
-		 pb->bf_getsegcount != NULL &&
-		 pb->bf_getreadbuffer != NULL &&
-		 (*pb->bf_getsegcount)(v, NULL) == 1)
-	{
+	else if (PyObject_CheckReadBuffer(v)) {
 		/* Write unknown buffer-style objects as a string */
 		char *s;
+		PyBufferProcs *pb = v->ob_type->tp_as_buffer;
 		w_byte(TYPE_STRING, p);
 		n = (*pb->bf_getreadbuffer)(v, 0, (void **)&s);
 		w_long((long)n, p);
