diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst
index 2a3445c..5d68e5a 100644
--- a/Doc/library/collections.rst
+++ b/Doc/library/collections.rst
@@ -651,9 +651,9 @@
            def __repr__(self):
                return 'Point(x=%r, y=%r)' % self
    <BLANKLINE>
-           def _asdict(t):
-               'Return a new dict which maps field names to their values'
-               return {'x': t[0], 'y': t[1]}
+           def _asdict(self):
+               'Return a new OrderedDict which maps field names to their values'
+               return OrderedDict(zip(self._fields, self))
    <BLANKLINE>
            def _replace(self, **kwds):
                'Return a new Point object replacing specified fields with new values'
@@ -711,10 +711,14 @@
 
 .. method:: somenamedtuple._asdict()
 
-   Return a new dict which maps field names to their corresponding values::
+   Return a new :class:`OrderedDict` which maps field names to their corresponding
+   values::
 
       >>> p._asdict()
-      {'x': 11, 'y': 22}
+      OrderedDict([('x', 11), ('y', 22)])
+
+   .. versionchanged 3.1
+      Returns an :class:`OrderedDict` instead of a regular :class:`dict`.
 
 .. method:: somenamedtuple._replace(kwargs)
 
