diff --git a/Doc/c-api/type.rst b/Doc/c-api/type.rst
index 49dfb3f..b3386ea 100644
--- a/Doc/c-api/type.rst
+++ b/Doc/c-api/type.rst
@@ -35,6 +35,14 @@
 
    Clear the internal lookup cache. Return the current version tag.
 
+.. c:function:: long PyType_GetFlags(PyTypeObject* type)
+
+   Return the :attr:`tp_flags` member of *type*. This function is primarily
+   meant for use with `Py_LIMITED_API`; the individual flag bits are
+   guaranteed to be stable across Python releases, but access to
+   :attr:`tp_flags` itself is not part of the limited API.
+
+   .. versionadded:: 3.2
 
 .. c:function:: void PyType_Modified(PyTypeObject *type)
 
diff --git a/Include/object.h b/Include/object.h
index 690f87b..99a7737 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -437,6 +437,8 @@
 PyAPI_DATA(PyTypeObject) PyBaseObject_Type; /* built-in 'object' */
 PyAPI_DATA(PyTypeObject) PySuper_Type; /* built-in 'super' */
 
+PyAPI_FUNC(long) PyType_GetFlags(PyTypeObject*);
+
 #define PyType_Check(op) \
     PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TYPE_SUBCLASS)
 #define PyType_CheckExact(op) (Py_TYPE(op) == &PyType_Type)
@@ -589,7 +591,11 @@
                  Py_TPFLAGS_HAVE_VERSION_TAG | \
                 0)
 
+#ifdef Py_LIMITED_API
+#define PyType_HasFeature(t,f)  ((PyType_GetFlags(t) & (f)) != 0)
+#else
 #define PyType_HasFeature(t,f)  (((t)->tp_flags & (f)) != 0)
+#endif
 #define PyType_FastSubclass(t,f)  PyType_HasFeature(t,f)
 
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 94b6964..7dbbcbb 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@
 Core and Builtins
 -----------------
 
+- Issue #11067: Add PyType_GetFlags, to support PyUnicode_Check
+  in the limited ABI.
+
 - Issue #11118: Fix bogus export of None in python3.dll.
 
 Library
diff --git a/Modules/xxlimited.c b/Modules/xxlimited.c
index bd3f178..5a6df8f 100644
--- a/Modules/xxlimited.c
+++ b/Modules/xxlimited.c
@@ -50,8 +50,14 @@
 static PyObject *
 Xxo_demo(XxoObject *self, PyObject *args)
 {
-    if (!PyArg_ParseTuple(args, ":demo"))
+    PyObject *o = NULL;
+    if (!PyArg_ParseTuple(args, "|O:demo", &o))
         return NULL;
+    /* Test availability of fast type checks */
+    if (o != NULL && PyUnicode_Check(o)) {
+        Py_INCREF(o);
+        return o;
+    }
     Py_INCREF(Py_None);
     return Py_None;
 }
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index db7828a..e9c7591 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -1904,6 +1904,12 @@
     return res;
 }
 
+long
+PyType_GetFlags(PyTypeObject *type)
+{
+    return type->tp_flags;
+}
+
 static PyObject *
 type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
 {
diff --git a/PC/python3.def b/PC/python3.def
index b8f483c..d02c585 100644
--- a/PC/python3.def
+++ b/PC/python3.def
@@ -513,6 +513,7 @@
   PyType_FromSpec=python32.PyType_FromSpec
   PyType_GenericAlloc=python32.PyType_GenericAlloc
   PyType_GenericNew=python32.PyType_GenericNew
+  PyType_GetFlags=python32.PyType_GetFlags
   PyType_IsSubtype=python32.PyType_IsSubtype
   PyType_Modified=python32.PyType_Modified
   PyType_Ready=python32.PyType_Ready
diff --git a/PC/python32stub.def b/PC/python32stub.def
index e5850c0..f8ac099 100644
--- a/PC/python32stub.def
+++ b/PC/python32stub.def
@@ -513,6 +513,7 @@
 PyType_FromSpec
 PyType_GenericAlloc
 PyType_GenericNew
+PyType_GetFlags
 PyType_IsSubtype
 PyType_Modified
 PyType_Ready
