Let configparser use ordered dicts by default.
diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst
index e833e23..9439d0d 100644
--- a/Doc/library/configparser.rst
+++ b/Doc/library/configparser.rst
@@ -64,6 +64,9 @@
    options within a section, and for the default values. This class does not
    support the magical interpolation behavior.
 
+   .. versionchanged 3.1
+      The default *dict_type* is :class:`collections.OrderedDict`.
+
 
 .. class:: ConfigParser([defaults[, dict_type]])
 
@@ -80,6 +83,9 @@
    option names to lower case), the values ``foo %(bar)s`` and ``foo %(BAR)s`` are
    equivalent.
 
+   .. versionchanged 3.1
+      The default *dict_type* is :class:`collections.OrderedDict`.
+
 
 .. class:: SafeConfigParser([defaults[, dict_type]])
 
@@ -90,6 +96,9 @@
 
    .. XXX Need to explain what's safer/more predictable about it.
 
+   .. versionchanged 3.1
+      The default *dict_type* is :class:`collections.OrderedDict`.
+
 
 .. exception:: NoSectionError
 
diff --git a/Lib/configparser.py b/Lib/configparser.py
index 5e36cc9..f2e644c 100644
--- a/Lib/configparser.py
+++ b/Lib/configparser.py
@@ -88,6 +88,7 @@
 """
 
 import re
+from collections import OrderedDict
 
 __all__ = ["NoSectionError", "DuplicateSectionError", "NoOptionError",
            "InterpolationError", "InterpolationDepthError",
@@ -215,7 +216,7 @@
 
 
 class RawConfigParser:
-    def __init__(self, defaults=None, dict_type=dict):
+    def __init__(self, defaults=None, dict_type=OrderedDict):
         self._dict = dict_type
         self._sections = self._dict()
         self._defaults = self._dict()
diff --git a/Misc/NEWS b/Misc/NEWS
index 7a3c96f..91c94ff 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -179,6 +179,8 @@
 
 - The _asdict() for method for namedtuples now returns an OrderedDict().
 
+- configparser now defaults to using an ordered dictionary.
+
 - Issue #1733986: Fixed mmap crash in accessing elements of second map object
   with same tagname but larger size than first map. (Windows)