diff --git a/Doc/c-api/object.rst b/Doc/c-api/object.rst
index fb03366056b0d2..5a25a2b6c9d3db 100644
--- a/Doc/c-api/object.rst
+++ b/Doc/c-api/object.rst
@@ -310,7 +310,7 @@ Object Protocol
    is equivalent to the Python expression ``type(o)``. This function increments the
    reference count of the return value. There's really no reason to use this
    function instead of the :c:func:`Py_TYPE()` function, which returns a
-   pointer of type :c:type:`PyTypeObject*`, except when the incremented reference
+   pointer of type :c:expr:`PyTypeObject*`, except when the incremented reference
    count is needed.
 
 
diff --git a/Doc/c-api/typehints.rst b/Doc/c-api/typehints.rst
index 88554a346c0dda..4c1957a2a1dbca 100644
--- a/Doc/c-api/typehints.rst
+++ b/Doc/c-api/typehints.rst
@@ -15,7 +15,7 @@ two types exist -- :ref:`GenericAlias <types-genericalias>` and
    Equivalent to calling the Python class
    :class:`types.GenericAlias`.  The *origin* and *args* arguments set the
    ``GenericAlias``\ 's ``__origin__`` and ``__args__`` attributes respectively.
-   *origin* should be a :c:type:`PyTypeObject*`, and *args* can be a
+   *origin* should be a :c:expr:`PyTypeObject*`, and *args* can be a
    :c:expr:`PyTupleObject*` or any ``PyObject*``.  If *args* passed is
    not a tuple, a 1-tuple is automatically constructed and ``__args__`` is set
    to ``(args,)``.