Rename thread to _thread and dummy_thread to _dummy_thread. Issue #2875.
diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst
index 9c9ee7f..7440dda 100644
--- a/Doc/c-api/exceptions.rst
+++ b/Doc/c-api/exceptions.rst
@@ -351,7 +351,7 @@
    be raised.  It may be called without holding the interpreter lock.
 
    .. % XXX This was described as obsolete, but is used in
-   .. % thread.interrupt_main() (used from IDLE), so it's still needed.
+   .. % _thread.interrupt_main() (used from IDLE), so it's still needed.
 
 
 .. cfunction:: int PySignal_SetWakeupFd(int fd)
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index 4bf6445..864991e 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -539,7 +539,7 @@
    This is a no-op when called for a second time.  It is safe to call this function
    before calling :cfunc:`Py_Initialize`.
 
-   .. index:: module: thread
+   .. index:: module: _thread
 
    When only the main thread exists, no lock operations are needed. This is a
    common situation (most Python programs do not use threads), and the lock
@@ -547,7 +547,7 @@
    initially.  This situation is equivalent to having acquired the lock:  when
    there is only a single thread, all object accesses are safe.  Therefore, when
    this function initializes the lock, it also acquires it.  Before the Python
-   :mod:`thread` module creates a new thread, knowing that either it has the lock
+   :mod:`_thread` module creates a new thread, knowing that either it has the lock
    or the lock hasn't been created yet, it calls :cfunc:`PyEval_InitThreads`.  When
    this call returns, it is guaranteed that the lock has been created and that the
    calling thread has acquired it.
diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst
index 9f47516..8ea61b0 100644
--- a/Doc/c-api/typeobj.rst
+++ b/Doc/c-api/typeobj.rst
@@ -488,7 +488,7 @@
    reference cycles. A typical implementation of a :attr:`tp_traverse` function
    simply calls :cfunc:`Py_VISIT` on each of the instance's members that are Python
    objects.  For example, this is function :cfunc:`local_traverse` from the
-   :mod:`thread` extension module::
+   :mod:`_thread` extension module::
 
       static int
       local_traverse(localobject *self, visitproc visit, void *arg)