diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst
index d8942f8..eda09e4 100644
--- a/Doc/library/decimal.rst
+++ b/Doc/library/decimal.rst
@@ -333,7 +333,11 @@
 
 .. method:: Decimal.as_tuple()
 
-   Return a tuple representation of the number: ``(sign, digit_tuple, exponent)``.
+   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 0ae6699..2610828 100644
--- a/Doc/library/difflib.rst
+++ b/Doc/library/difflib.rst
@@ -344,7 +344,7 @@
 
    Find longest matching block in ``a[alo:ahi]`` and ``b[blo:bhi]``.
 
-   If *isjunk* was omitted or ``None``, :meth:`get_longest_match` returns ``(i, j,
+   If *isjunk* was omitted or ``None``, :meth:`find_longest_match` returns ``(i, j,
    k)`` such that ``a[i:i+k]`` is equal to ``b[j:j+k]``, where ``alo <= i <= i+k <=
    ahi`` and ``blo <= j <= j+k <= bhi``. For all ``(i', j', k')`` meeting those
    conditions, the additional conditions ``k >= k'``, ``i <= i'``, and if ``i ==
@@ -373,6 +373,9 @@
 
    If no blocks match, this returns ``(alo, blo, 0)``.
 
+   .. versionchanged:: 2.6
+      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 a231bb4..110411f 100644
--- a/Doc/library/doctest.rst
+++ b/Doc/library/doctest.rst
@@ -1506,11 +1506,14 @@
 .. method:: DocTestRunner.summarize([verbose])
 
    Print a summary of all the test cases that have been run by this DocTestRunner,
-   and return a tuple ``(failure_count, test_count)``.
+   and return a :term:`named tuple` ``TestResults(failed, attempted)``.
 
    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/inspect.rst b/Doc/library/inspect.rst
index c1f0f00..7893b69 100644
--- a/Doc/library/inspect.rst
+++ b/Doc/library/inspect.rst
@@ -214,6 +214,10 @@
    defined in the :mod:`imp` module; see the documentation for that module for
    more information on module types.
 
+   .. versionchanged:: 2.6
+      Returns a :term:`named tuple` ``ModuleInfo(name, suffix, mode,
+      module_type)``.
+
 
 .. function:: getmodulename(path)
 
@@ -405,6 +409,10 @@
    default argument values or None if there are no default arguments; if this tuple
    has *n* elements, they correspond to the last *n* elements listed in *args*.
 
+   .. versionchanged:: 2.6
+      Returns a :term:`named tuple` ``ArgSpec(args, varargs, keywords,
+      defaults)``.
+
 
 .. function:: getargvalues(frame)
 
@@ -414,6 +422,10 @@
    names of the ``*`` and ``**`` arguments or ``None``. *locals* is the locals
    dictionary of the given frame.
 
+   .. versionchanged:: 2.6
+      Returns a :term:`named tuple` ``ArgInfo(args, varargs, keywords,
+      locals)``.
+
 
 .. function:: formatargspec(args[, varargs, varkw, defaults, formatarg, formatvarargs, formatvarkw, formatvalue, join])
 
@@ -479,6 +491,10 @@
    Get information about a frame or traceback object.  A 5-tuple is returned, the
    last five elements of the frame's frame record.
 
+   .. versionchanged:: 2.6
+      Returns a :term:`named tuple` ``Traceback(filename, lineno, function,
+      code_context, index)``.
+
 
 .. function:: getouterframes(frame[, context])
 
