diff --git a/Python/ceval.c b/Python/ceval.c
index cb95aaa..6eebf94 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -548,6 +548,9 @@
 #define POP()		BASIC_POP()
 #endif
 
+/* Strict int check macros */
+#define ISSTRICTINT(v)	((v)->ob_type == &PyInt_Type)
+
 /* Local variable macros */
 
 #define GETLOCAL(i)	(fastlocals[i])
@@ -909,7 +912,7 @@
 		case BINARY_ADD:
 			w = POP();
 			v = POP();
-			if (PyInt_Check(v) && PyInt_Check(w)) {
+			if (ISSTRICTINT(v) && ISSTRICTINT(w)) {
 				/* INLINE: int + int */
 				register long a, b, i;
 				a = PyInt_AS_LONG(v);
@@ -932,7 +935,7 @@
 		case BINARY_SUBTRACT:
 			w = POP();
 			v = POP();
-			if (PyInt_Check(v) && PyInt_Check(w)) {
+			if (ISSTRICTINT(v) && ISSTRICTINT(w)) {
 				/* INLINE: int - int */
 				register long a, b, i;
 				a = PyInt_AS_LONG(v);
@@ -955,7 +958,7 @@
 		case BINARY_SUBSCR:
 			w = POP();
 			v = POP();
-			if (v->ob_type == &PyList_Type && PyInt_Check(w)) {
+			if (v->ob_type == &PyList_Type && ISSTRICTINT(w)) {
 				/* INLINE: list[int] */
 				long i = PyInt_AsLong(w);
 				if (i < 0)
@@ -1092,7 +1095,7 @@
 		case INPLACE_ADD:
 			w = POP();
 			v = POP();
-			if (PyInt_Check(v) && PyInt_Check(w)) {
+			if (ISSTRICTINT(v) && ISSTRICTINT(w)) {
 				/* INLINE: int + int */
 				register long a, b, i;
 				a = PyInt_AS_LONG(v);
@@ -1115,7 +1118,7 @@
 		case INPLACE_SUBTRACT:
 			w = POP();
 			v = POP();
-			if (PyInt_Check(v) && PyInt_Check(w)) {
+			if (ISSTRICTINT(v) && ISSTRICTINT(w)) {
 				/* INLINE: int - int */
 				register long a, b, i;
 				a = PyInt_AS_LONG(v);
@@ -1718,7 +1721,7 @@
 		case COMPARE_OP:
 			w = POP();
 			v = POP();
-			if (PyInt_Check(v) && PyInt_Check(w)) {
+			if (ISSTRICTINT(v) && ISSTRICTINT(w)) {
 				/* INLINE: cmp(int, int) */
 				register long a, b;
 				register int res;
