extern DL_IMPORT(PyTypeObject) PyString_Type;
-#define PyString_Check(op) ((op)->ob_type == &PyString_Type)
+#define PyString_Check(op) PyObject_TypeCheck(op, &PyString_Type)
extern DL_IMPORT(PyObject *) PyString_FromStringAndSize(const char *, int);
extern DL_IMPORT(PyObject *) PyString_FromString(const char *);
extern DL_IMPORT(PyTypeObject) PyTuple_Type;
-#define PyTuple_Check(op) ((op)->ob_type == &PyTuple_Type)
+#define PyTuple_Check(op) PyObject_TypeCheck(op, &PyTuple_Type)
extern DL_IMPORT(PyObject *) PyTuple_New(int size);
extern DL_IMPORT(int) PyTuple_Size(PyObject *);
extern DL_IMPORT(PyTypeObject) PyUnicode_Type;
-#define PyUnicode_Check(op) (((op)->ob_type == &PyUnicode_Type))
+#define PyUnicode_Check(op) PyObject_TypeCheck(op, &PyUnicode_Type)
/* Fast access macros */
#define PyUnicode_GET_SIZE(op) \