diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst
index 92ac6c4..53d86a0 100644
--- a/Doc/library/argparse.rst
+++ b/Doc/library/argparse.rst
@@ -4,7 +4,7 @@
 .. module:: argparse
    :synopsis: Command-line option and argument parsing library.
 .. moduleauthor:: Steven Bethard <steven.bethard@gmail.com>
-.. versionadded:: 2.7
+.. versionadded:: 3.2
 .. sectionauthor:: Steven Bethard <steven.bethard@gmail.com>
 
 
diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst
index 9dc0469..2d1e585 100644
--- a/Doc/library/shutil.rst
+++ b/Doc/library/shutil.rst
@@ -236,7 +236,7 @@
    *owner* and *group* are used when creating a tar archive. By default,
    uses the current owner and group.
 
-   .. versionadded:: 2.7
+   .. versionadded:: 3.2
 
 
 .. function:: get_archive_formats()
@@ -255,7 +255,7 @@
    You can register new formats or provide your own archiver for any existing
    formats, by using :func:`register_archive_format`.
 
-   .. versionadded:: 2.7
+   .. versionadded:: 3.2
 
 
 .. function:: register_archive_format(name, function, [extra_args, [description]])
@@ -269,14 +269,14 @@
    *description* is used by :func:`get_archive_formats` which returns the
    list of archivers. Defaults to an empty list.
 
-   .. versionadded:: 2.7
+   .. versionadded:: 3.2
 
 
 .. function::  unregister_archive_format(name)
 
    Remove the archive format *name* from the list of supported formats.
 
-   .. versionadded:: 2.7
+   .. versionadded:: 3.2
 
 
 Archiving example
diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst
index c7cd075..8225efb 100644
--- a/Doc/library/sqlite3.rst
+++ b/Doc/library/sqlite3.rst
@@ -367,7 +367,7 @@
 
 .. method:: Connection.enable_load_extension(enabled)
 
-   .. versionadded:: 2.7
+   .. versionadded:: 3.2
 
    This routine allows/disallows the SQLite engine to load SQLite extensions
    from shared libraries.  SQLite extensions can define new functions,
@@ -378,7 +378,7 @@
 
 .. method:: Connection.load_extension(path)
 
-   .. versionadded:: 2.7
+   .. versionadded:: 3.2
 
    This routine loads a SQLite extension from a shared library. You have to
    enable extension loading with ``enable_load_extension`` before you can use
diff --git a/Doc/library/sysconfig.rst b/Doc/library/sysconfig.rst
index 63a537f..2426436 100644
--- a/Doc/library/sysconfig.rst
+++ b/Doc/library/sysconfig.rst
@@ -5,7 +5,7 @@
    :synopsis: Python's configuration information
 .. moduleauthor:: Tarek Ziade <tarek@ziade.org>
 .. sectionauthor:: Tarek Ziade <tarek@ziade.org>
-.. versionadded:: 2.7
+.. versionadded:: 3.2
 .. index::
    single: configuration information
 
diff --git a/Doc/library/test.rst b/Doc/library/test.rst
index 351c032..9f013f8 100644
--- a/Doc/library/test.rst
+++ b/Doc/library/test.rst
@@ -324,7 +324,7 @@
           w.reset()
           assert len(w.warnings) == 0
 
-   .. versionchanged:: 2.7
+   .. versionchanged:: 3.2
       New optional attributes ``*filters`` and ``quiet``.
 
 
diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst
index 5ce6125..f642111 100644
--- a/Doc/library/threading.rst
+++ b/Doc/library/threading.rst
@@ -647,9 +647,6 @@
 
       Return true if and only if the internal flag is true.
 
-      .. versionchanged:: 2.6
-         The ``is_set()`` syntax is new.
-
    .. method:: set()
 
       Set the internal flag to true. All threads waiting for it to become true
diff --git a/Doc/library/xml.etree.elementtree.rst b/Doc/library/xml.etree.elementtree.rst
index b99dec5..892a59a 100644
--- a/Doc/library/xml.etree.elementtree.rst
+++ b/Doc/library/xml.etree.elementtree.rst
@@ -35,7 +35,7 @@
 docs.  Fredrik Lundh's page is also the location of the development version of
 the xml.etree.ElementTree.
 
-.. versionchanged:: 2.7
+.. versionchanged:: 3.2
    The ElementTree API is updated to 1.3.  For more information, see
    `Introducing ElementTree 1.3
    <http://effbot.org/zone/elementtree-13-intro.htm>`_.
@@ -80,7 +80,7 @@
    optional parser instance.  If not given, the standard :class:`XMLParser`
    parser is used.  Returns an :class:`Element` instance.
 
-   .. versionadded:: 2.7
+   .. versionadded:: 3.2
 
 
 .. function:: iselement(element)
@@ -133,7 +133,7 @@
    attributes in this namespace will be serialized with the given prefix, if at
    all possible.
 
-   .. versionadded:: 2.7
+   .. versionadded:: 3.2
 
 
 .. function:: SubElement(parent, tag, attrib={}, **extra)
@@ -167,7 +167,7 @@
    any specific sequence, except that ``"".join(tostringlist(element)) ==
    tostring(element)``.
 
-   .. versionadded:: 2.7
+   .. versionadded:: 3.2
 
 
 .. function:: XML(text, parser=None)
@@ -282,7 +282,7 @@
       Appends *subelements* from a sequence object with zero or more elements.
       Raises :exc:`AssertionError` if a subelement is not a valid object.
 
-      .. versionadded:: 2.7
+      .. versionadded:: 3.2
 
 
    .. method:: find(match)
@@ -336,7 +336,7 @@
       Finds all matching subelements, by tag name or path.  Returns an iterable
       yielding all matching elements in document order.
 
-      .. versionadded:: 2.7
+      .. versionadded:: 3.2
 
 
    .. method:: itertext()
@@ -344,7 +344,7 @@
       Creates a text iterator.  The iterator loops over this element and all
       subelements, in document order, and returns all inner text.
 
-      .. versionadded:: 2.7
+      .. versionadded:: 3.2
 
 
    .. method:: makeelement(tag, attrib)
@@ -446,7 +446,7 @@
       getroot().iterfind(match). Returns an iterable yielding all matching
       elements in document order.
 
-      .. versionadded:: 2.7
+      .. versionadded:: 3.2
 
 
    .. method:: parse(source, parser=None)
@@ -559,7 +559,7 @@
       the public identifier.  *system* is the system identifier.  This method
       does not exist on the default :class:`TreeBuilder` class.
 
-      .. versionadded:: 2.7
+      .. versionadded:: 3.2
 
 
 .. _elementtree-xmlparser-objects:
diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst
index 7648e36..19e4156 100644
--- a/Doc/library/zipfile.rst
+++ b/Doc/library/zipfile.rst
@@ -288,7 +288,7 @@
       member of the given :class:`ZipInfo` instance.  By default, the
       :class:`ZipInfo` constructor sets this member to :const:`ZIP_STORED`.
 
-   .. versionchanged:: 2.7
+   .. versionchanged:: 3.2
       The *compression_type* argument.
 
 The following data attributes are also available:
diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst
index d0acd20..863c3ce 100644
--- a/Doc/reference/expressions.rst
+++ b/Doc/reference/expressions.rst
@@ -1152,8 +1152,6 @@
 Conditional Expressions
 =======================
 
-.. versionadded:: 2.5
-
 .. index::
    pair: conditional; expression
    pair: ternary; operator
