diff --git a/Doc/library/_winreg.rst b/Doc/library/_winreg.rst
index 7ce34b4..a4f3879 100644
--- a/Doc/library/_winreg.rst
+++ b/Doc/library/_winreg.rst
@@ -138,8 +138,6 @@
       >>> ExpandEnvironmentStrings(u"%windir%")
       u"C:\\Windows"
 
-   .. versionadded:: 2.6
-
 
 .. function:: FlushKey(key)
 
@@ -437,5 +435,4 @@
 
    will automatically close *key* when control leaves the :keyword:`with` block.
 
-   .. versionadded:: 2.6
 
diff --git a/Doc/library/basehttpserver.rst b/Doc/library/basehttpserver.rst
index 9ac3aaf..b527163 100644
--- a/Doc/library/basehttpserver.rst
+++ b/Doc/library/basehttpserver.rst
@@ -127,9 +127,6 @@
    Specifies the Content-Type HTTP header of error responses sent to the client.
    The default value is ``'text/html'``.
 
-   .. versionadded:: 2.6
-      Previously, the content type was always ``'text/html'``.
-
 
 .. attribute:: BaseHTTPRequestHandler.protocol_version
 
diff --git a/Doc/library/cmath.rst b/Doc/library/cmath.rst
index f78f69c..83a220c 100644
--- a/Doc/library/cmath.rst
+++ b/Doc/library/cmath.rst
@@ -65,8 +65,6 @@
 
    Return phase, also known as the argument, of a complex.
 
-   .. versionadded:: 2.6
-
 
 .. function:: polar(x)
 
@@ -75,16 +73,12 @@
    *r* and *phi*. *r* is the distance from 0 and *phi* the phase 
    angle.
 
-   .. versionadded:: 2.6
-
 
 .. function:: rect(r, phi)
 
    Convert from polar coordinates to rectangular coordinates and return
    a :class:`complex`.
 
-   .. versionadded:: 2.6
-
 
 
 cmath functions
@@ -115,9 +109,6 @@
    continuous from the right.  The other extends from ``-1j`` along
    the imaginary axis to ``-∞j``, continuous from the left.
 
-   .. versionchanged:: 2.6
-      branch cuts moved to match those recommended by the C99 standard
-
 
 .. function:: atan(x)
 
@@ -126,9 +117,6 @@
    other extends from ``-1j`` along the imaginary axis to ``-∞j``, continuous
    from the left.
 
-   .. versionchanged:: 2.6
-      direction of continuity of upper cut reversed
-
 
 .. function:: atanh(x)
 
@@ -137,9 +125,6 @@
    other extends from ``-1`` along the real axis to ``-∞``, continuous from
    above.
 
-   .. versionchanged:: 2.6
-      direction of continuity of right cut reversed
-
 
 .. function:: cos(x)
 
@@ -161,15 +146,11 @@
    Return *True* if the real or the imaginary part of x is positive
    or negative infinity.
 
-   .. versionadded:: 2.6
-
 
 .. function:: isnan(x)
 
    Return *True* if the real or imaginary part of x is not a number (NaN).
 
-   .. versionadded:: 2.6
-
 
 .. function:: log(x[, base])
 
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
index b2d672f..7b95ba1 100644
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -2004,14 +2004,11 @@
 
 .. class:: _SimpleCData
 
-   This non-public class is the base class of all fundamental ctypes data types. It
-   is mentioned here because it contains the common attributes of the fundamental
-   ctypes data types.  ``_SimpleCData`` is a subclass of ``_CData``, so it inherits
-   their methods and attributes.
-
-   .. versionchanged:: 2.6
-      ctypes data types that are not and do not contain pointers can
-      now be pickled.
+   This non-public class is the base class of all fundamental ctypes data
+   types. It is mentioned here because it contains the common attributes of the
+   fundamental ctypes data types.  ``_SimpleCData`` is a subclass of ``_CData``,
+   so it inherits their methods and attributes. ctypes data types that are not
+   and do not contain pointers can now be pickled.
 
 Instances have a single attribute:
 
diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst
index 868cbd8..e4aac1a 100644
--- a/Doc/library/datetime.rst
+++ b/Doc/library/datetime.rst
@@ -1498,8 +1498,6 @@
 which expands to the number of microseconds in the object, zero-padded on
 the left to six places.
 
-.. versionadded:: 2.6
-
 For a naive object, the ``%z`` and ``%Z`` format codes are replaced by empty
 strings.
 
diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst
index 33aa42c..6f4821b 100644
--- a/Doc/library/decimal.rst
+++ b/Doc/library/decimal.rst
@@ -340,9 +340,6 @@
 
    Once constructed, :class:`Decimal` objects are immutable.
 
-   .. versionchanged:: 2.6
-      leading and trailing whitespace characters are permitted when
-      creating a Decimal instance from a string.
 
 Decimal floating point objects share many properties with the other built-in
 numeric types such as :class:`float` and :class:`int`.  All of the usual math
@@ -367,9 +364,6 @@
    Return a :term:`named tuple` representation of the number:
    ``DecimalTuple(sign, digits, exponent)``.
 
-   .. versionchanged:: 2.6
-      Use a named tuple.
-
 
 .. method:: Decimal.canonical()
 
diff --git a/Doc/library/difflib.rst b/Doc/library/difflib.rst
index db4bd3a..585fa74 100644
--- a/Doc/library/difflib.rst
+++ b/Doc/library/difflib.rst
@@ -401,8 +401,7 @@
 
    If no blocks match, this returns ``(alo, blo, 0)``.
 
-   .. versionchanged:: 2.6
-      This method returns a :term:`named tuple` ``Match(a, b, size)``.
+   This method returns a :term:`named tuple` ``Match(a, b, size)``.
 
 
 .. method:: SequenceMatcher.get_matching_blocks()
diff --git a/Doc/library/doctest.rst b/Doc/library/doctest.rst
index ce8b9f0..ee03572 100644
--- a/Doc/library/doctest.rst
+++ b/Doc/library/doctest.rst
@@ -1441,9 +1441,6 @@
    The optional *verbose* argument controls how detailed the summary is.  If the
    verbosity is not specified, then the :class:`DocTestRunner`'s verbosity is used.
 
-   .. versionchanged:: 2.6
-      Use a named tuple.
-
 
 .. _doctest-outputchecker:
 
diff --git a/Doc/library/fractions.rst b/Doc/library/fractions.rst
index e868e57..299e154 100644
--- a/Doc/library/fractions.rst
+++ b/Doc/library/fractions.rst
@@ -6,7 +6,6 @@
    :synopsis: Rational numbers.
 .. moduleauthor:: Jeffrey Yasskin <jyasskin at gmail.com>
 .. sectionauthor:: Jeffrey Yasskin <jyasskin at gmail.com>
-.. versionadded:: 2.6
 
 
 The :mod:`fractions` module defines an immutable, infinite-precision
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 8fa027c..52ce6c6 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -227,9 +227,6 @@
    This function raises :exc:`SyntaxError` if the compiled source is invalid,
    and :exc:`TypeError` if the source contains null bytes.
 
-   .. versionadded:: 2.6
-      Support for compiling AST objects.
-
 
 .. function:: complex([real[, imag]])
 
diff --git a/Doc/library/heapq.rst b/Doc/library/heapq.rst
index 5221c4e..7ac38ac 100644
--- a/Doc/library/heapq.rst
+++ b/Doc/library/heapq.rst
@@ -43,13 +43,13 @@
    Pop and return the smallest item from the *heap*, maintaining the heap
    invariant.  If the heap is empty, :exc:`IndexError` is raised.
 
+
 .. function:: heappushpop(heap, item)
 
    Push *item* on the heap, then pop and return the smallest item from the
    *heap*.  The combined action runs more efficiently than :func:`heappush`
    followed by a separate call to :func:`heappop`.
 
-   .. versionadded:: 2.6
 
 .. function:: heapify(x)
 
diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst
index c9d4c60..63cace6 100644
--- a/Doc/library/itertools.rst
+++ b/Doc/library/itertools.rst
@@ -91,8 +91,6 @@
               for element in it:
                   yield element
 
-   .. versionadded:: 2.6
-
 
 .. function:: combinations(iterable, r)
 
@@ -137,7 +135,6 @@
                 if sorted(indices) == list(indices):
                     yield tuple(pool[i] for i in indices)
 
-   .. versionadded:: 2.6
 
 .. function:: count([n])
 
@@ -363,7 +360,6 @@
                 if len(set(indices)) == r:
                     yield tuple(pool[i] for i in indices)
 
-   .. versionadded:: 2.6
 
 .. function:: product(*iterables[, repeat])
 
@@ -425,10 +421,6 @@
           for args in iterable:
               yield function(*args)
 
-   .. versionchanged:: 2.6
-      Previously, :func:`starmap` required the function arguments to be tuples.
-      Now, any iterable is allowed.
-
 
 .. function:: takewhile(predicate, iterable)
 
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index ac462fe..d109ea1 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -1240,10 +1240,6 @@
    2008-01-18 14:49:54,033 d.e.f WARNING  IP: 192.168.0.1     User: sheila   A message at WARNING level with 2 parameters
    2008-01-18 14:49:54,033 d.e.f WARNING  IP: 127.0.0.1       User: jim      A message at WARNING level with 2 parameters
 
-.. versionadded:: 2.6
-
-The :class:`LoggerAdapter` class was not present in previous versions.
-
 
 .. _network-logging:
 
@@ -2143,8 +2139,6 @@
 LoggerAdapter Objects
 ---------------------
 
-.. versionadded:: 2.6
-
 :class:`LoggerAdapter` instances are used to conveniently pass contextual
 information into logging calls. For a usage example , see the section on
 `adding contextual information to your logging output`__.
diff --git a/Doc/library/math.rst b/Doc/library/math.rst
index e906af2..d9593a8 100644
--- a/Doc/library/math.rst
+++ b/Doc/library/math.rst
@@ -102,7 +102,6 @@
    Return the :class:`Real` value *x* truncated to an :class:`Integral` (usually
    a long integer). Delegates to ``x.__trunc__()``.
 
-   .. versionadded:: 2.6
 
 Note that :func:`frexp` and :func:`modf` have a different call/return pattern
 than their C equivalents: they take a single argument and return a pair of
@@ -133,8 +132,6 @@
    Return the natural logarithm of *1+x* (base *e*). The
    result is calculated in a way which is accurate for *x* near zero.
 
-   .. versionadded:: 2.6
-
 
 .. function:: log10(x)
 
@@ -150,9 +147,6 @@
    ``x`` is negative, and ``y`` is not an integer then ``pow(x, y)``
    is undefined, and raises :exc:`ValueError`.
 
-   .. versionchanged:: 2.6
-      The outcome of ``1**nan`` and ``nan**0`` was undefined.
-
 
 .. function:: sqrt(x)
 
@@ -225,22 +219,16 @@
 
    Return the inverse hyperbolic cosine of *x*.
 
-   .. versionadded:: 2.6
-
 
 .. function:: asinh(x)
 
    Return the inverse hyperbolic sine of *x*.
 
-   .. versionadded:: 2.6
-
 
 .. function:: atanh(x)
 
    Return the inverse hyperbolic tangent of *x*.
 
-   .. versionadded:: 2.6
-
 
 .. function:: cosh(x)
 
diff --git a/Doc/library/operator.rst b/Doc/library/operator.rst
index 047c7ec..a0a767b 100644
--- a/Doc/library/operator.rst
+++ b/Doc/library/operator.rst
@@ -457,7 +457,6 @@
       >>> itemgetter(slice(2,None))('ABCDEFG')
       'CDEFG'
 
-   .. versionadded:: 2.4
 
    Example of using :func:`itemgetter` to retrieve specific fields from a
    tuple record:
diff --git a/Doc/library/pickletools.rst b/Doc/library/pickletools.rst
index 3dc06ac..c55d8bd 100644
--- a/Doc/library/pickletools.rst
+++ b/Doc/library/pickletools.rst
@@ -39,4 +39,3 @@
    opcodes. The optimized pickle is shorter, takes less transmission time,
    requires less storage space, and unpickles more efficiently.
 
-   .. versionadded:: 2.6
diff --git a/Doc/library/plistlib.rst b/Doc/library/plistlib.rst
index 508f8e8..f449d7f 100644
--- a/Doc/library/plistlib.rst
+++ b/Doc/library/plistlib.rst
@@ -7,10 +7,6 @@
 .. sectionauthor:: Georg Brandl <georg@python.org>
 .. (harvested from docstrings in the original file)
 
-.. versionchanged:: 2.6
-   This module was previously only available in the Mac-specific library, it is
-   now available for all platforms.
-
 .. index::
    pair: plist; file
    single: property list
diff --git a/Doc/library/pprint.rst b/Doc/library/pprint.rst
index 3e2e892..8c28879 100644
--- a/Doc/library/pprint.rst
+++ b/Doc/library/pprint.rst
@@ -22,9 +22,6 @@
 
 Dictionaries are sorted by key before the display is computed.
 
-.. versionchanged:: 2.6
-   Added support for :class:`set` and :class:`frozenset`.
-
 The :mod:`pprint` module defines one class:
 
 .. First the implementation class:
diff --git a/Doc/library/py_compile.rst b/Doc/library/py_compile.rst
index 77ed8cf..0891862 100644
--- a/Doc/library/py_compile.rst
+++ b/Doc/library/py_compile.rst
@@ -45,10 +45,6 @@
 files named on the command line.  The exit status is nonzero if one of the files
 could not be compiled.
 
-.. versionchanged:: 2.6
-
-   Added the nonzero exit status.
-
 
 .. seealso::
 
diff --git a/Doc/library/pyexpat.rst b/Doc/library/pyexpat.rst
index e19a4d5..e819bd4 100644
--- a/Doc/library/pyexpat.rst
+++ b/Doc/library/pyexpat.rst
@@ -182,9 +182,6 @@
    to this attribute.  
    When the size is changed, the buffer will be flushed.
 
-   .. versionchanged:: 2.6
-      The buffer size can now be changed.
-
 
 .. attribute:: xmlparser.buffer_text
 
diff --git a/Doc/library/queue.rst b/Doc/library/queue.rst
index b5ba24d..7cb07c8 100644
--- a/Doc/library/queue.rst
+++ b/Doc/library/queue.rst
@@ -37,8 +37,6 @@
    block once this size has been reached, until queue items are consumed.  If
    *maxsize* is less than or equal to zero, the queue size is infinite.
 
-   .. versionadded:: 2.6
-
 
 .. class:: PriorityQueue(maxsize)
 
@@ -51,8 +49,6 @@
    one returned by ``sorted(list(entries))[0]``).  A typical pattern for entries
    is a tuple in the form: ``(priority_number, data)``.
 
-   .. versionadded:: 2.6
-
 
 .. exception:: Empty
 
diff --git a/Doc/library/random.rst b/Doc/library/random.rst
index 86a9a95..afdff76 100644
--- a/Doc/library/random.rst
+++ b/Doc/library/random.rst
@@ -153,6 +153,7 @@
 
    Return a random floating point number *N* such that ``a <= N < b``.
 
+
 .. function:: triangular(low, high, mode)
 
    Return a random floating point number *N* such that ``low <= N < high`` and
@@ -160,8 +161,6 @@
    default to zero and one.  The *mode* argument defaults to the midpoint
    between the bounds, giving a symmetric distribution.
 
-   .. versionadded:: 2.6
-
 
 .. function:: betavariate(alpha, beta)
 
diff --git a/Doc/library/sched.rst b/Doc/library/sched.rst
index 70e1d85..bb15c76 100644
--- a/Doc/library/sched.rst
+++ b/Doc/library/sched.rst
@@ -129,5 +129,3 @@
    Read-only attribute returning a list of upcoming events in the order they
    will be run.  Each event is shown as a :term:`named tuple` with the
    following fields:  time, priority, action, argument.
-
-   .. versionadded:: 2.6
diff --git a/Doc/library/select.rst b/Doc/library/select.rst
index 3fef993..102d3ea 100644
--- a/Doc/library/select.rst
+++ b/Doc/library/select.rst
@@ -31,8 +31,6 @@
    section :ref:`epoll-objects` below for the methods supported by epolling
    objects.
 
-   .. versionadded:: 2.6
-
 
 .. function:: poll()
 
@@ -47,16 +45,12 @@
    (Only supported on BSD.)  Returns a kernel queue object object; see section
    :ref:`kqueue-objects` below for the methods supported by kqueue objects.
 
-   .. versionadded:: 2.6
-
 
 .. function:: kqueue(ident, filter=KQ_FILTER_READ, flags=KQ_ADD, fflags=0, data=0, udata=0)
 
    (Only supported on BSD.)  Returns a kernel event object object; see section
    :ref:`kevent-objects` below for the methods supported by kqueue objects.
 
-   .. versionadded:: 2.6
-
 
 .. function:: select(iwtd, owtd, ewtd[, timeout])
 
@@ -224,8 +218,6 @@
    that was never registered causes an :exc:`IOError` exception with errno
    :const:`ENOENT` to be raised.
 
-   .. versionadded:: 2.6
-
 
 .. method:: poll.unregister(fd)
 
diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst
index 2300fe9..a3ab387 100644
--- a/Doc/library/shutil.rst
+++ b/Doc/library/shutil.rst
@@ -110,10 +110,6 @@
    information return by :func:`sys.exc_info`.  Exceptions raised by *onerror*
    will not be caught.
 
-   .. versionchanged:: 2.6
-      Explicitly check for *path* being a symbolic link and raise :exc:`OSError`
-      in that case.
-
 
 .. function:: move(src, dst)
 
diff --git a/Doc/library/signal.rst b/Doc/library/signal.rst
index 7586035..4001522 100644
--- a/Doc/library/signal.rst
+++ b/Doc/library/signal.rst
@@ -160,15 +160,11 @@
    Attempting to pass an invalid interval timer will cause a 
    :exc:`ItimerError`.
 
-   .. versionadded:: 2.6
-
 
 .. function:: getitimer(which)
 
    Returns current value of a given interval timer specified by *which*.
 
-   .. versionadded:: 2.6
-
 
 .. function:: set_wakeup_fd(fd)
 
@@ -195,8 +191,6 @@
    behaviour to interruptible by implicitly calling :cfunc:`siginterrupt` with a true *flag*
    value for the given signal.
 
-   .. versionadded:: 2.6
-
 
 .. function:: signal(signalnum, handler)
 
diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst
index 616be10..bf9b186 100644
--- a/Doc/library/sqlite3.rst
+++ b/Doc/library/sqlite3.rst
@@ -350,8 +350,6 @@
 
 .. method:: Connection.set_progress_handler(handler, n)
 
-   .. versionadded:: 2.6
-
    This routine registers a callback. The callback is invoked for every *n*
    instructions of the SQLite virtual machine. This is useful if you want to
    get called from SQLite during long-running operations, for example to update
@@ -414,8 +412,6 @@
    the same capabilities as the :kbd:`.dump` command in the :program:`sqlite3`
    shell.
 
-   .. versionadded:: 2.6
-
    Example::
 
       # Convert file existing_db.db to SQL dump file dump.sql
@@ -764,8 +760,6 @@
 Using the connection as a context manager
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-.. versionadded:: 2.6
-
 Connection objects can be used as context managers
 that automatically commit or rollback transactions.  In the event of an
 exception, the transaction is rolled back; otherwise, the transaction is
diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst
index 2344bcb..25aa008 100644
--- a/Doc/library/subprocess.rst
+++ b/Doc/library/subprocess.rst
@@ -212,8 +212,6 @@
       On Windows only SIGTERM is supported so far. It's an alias for
       :meth:`terminate`.
 
-   .. versionadded:: 2.6
-
 
 .. method:: Popen.terminate()
 
@@ -221,16 +219,12 @@
    child. On Windows the Win32 API function TerminateProcess is called
    to stop the child.
 
-   .. versionadded:: 2.6
-
 
 .. method:: Popen.kill()
 
    Kills the child. On Posix OSs the function sends SIGKILL to the child.
    On Windows :meth:`kill` is an alias for :meth:`terminate`.
 
-   .. versionadded:: 2.6
-
 
 The following attributes are also available:
 
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index 085ba64..9963dbd 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -66,8 +66,6 @@
 
    This function should be used for specialized purposes only.
 
-   .. versionadded:: 2.6
-
 
 .. function:: _clear_type_cache()
 
@@ -77,8 +75,6 @@
 
    This function should be used for internal and specialized purposes only.
 
-   .. versionadded:: 2.6
-
 
 .. function:: _current_frames()
 
@@ -245,8 +241,6 @@
    | :const:`unicode`             | -U                                       |
    +------------------------------+------------------------------------------+
 
-   .. versionadded:: 2.6
-
 
 .. data:: float_info
 
@@ -360,8 +354,6 @@
 
    Get the profiler function as set by :func:`setprofile`.
 
-   .. versionadded:: 2.6
-
 
 .. function:: gettrace()
 
@@ -378,8 +370,6 @@
       implementation platform, rather than part of the language definition,
       and thus may not be available in all Python implementations.
 
-   .. versionadded:: 2.6
-
 
 .. function:: getwindowsversion()
 
@@ -556,8 +546,6 @@
    environment variable, but you can set it yourself to control bytecode file
    generation.
 
-   .. versionadded:: 2.6
-
 
 .. function:: setcheckinterval(interval)
 
diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst
index b1c9038..9b77214 100644
--- a/Doc/library/zipfile.rst
+++ b/Doc/library/zipfile.rst
@@ -182,8 +182,6 @@
    filename or a :class:`ZipInfo` object.  *pwd* is the password used for
    encrypted files.
 
-   .. versionadded:: 2.6
-
 
 .. method:: ZipFile.extractall([path[, members[, pwd]]])
 
@@ -192,8 +190,6 @@
    be a subset of the list returned by :meth:`namelist`.  *pwd* is the password
    used for encrypted files.
 
-   .. versionadded:: 2.6
-
 
 .. method:: ZipFile.printdir()
 
