diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index fb5c018..307bad3 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -338,6 +338,13 @@
    mutable
       Mutable objects can change their value but keep their :func:`id`.  See
       also :term:`immutable`.
+
+   named tuple
+      A tuple subclass whose elements also are accessible as attributes via
+      fixed names (the class name and field names are indicated in the
+      individual documentation of a named tuple type, like ``TestResults(failed,
+      attempted)``).  Named tuple classes are created by
+      :func:`collections.namedtuple`.
     
    namespace
       The place where a variable is stored.  Namespaces are implemented as
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])
 
