ConfigParser renaming reversal part 3: move module into place and adapt imports.
diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst
index 6a4e049..ec9aec2 100644
--- a/Doc/library/configparser.rst
+++ b/Doc/library/configparser.rst
@@ -1,10 +1,7 @@
-:mod:`configparser` --- Configuration file parser
+:mod:`ConfigParser` --- Configuration file parser
 =================================================
 
 .. module:: ConfigParser
-   :synopsis: Old name for the configparser module.
-
-.. module:: configparser
    :synopsis: Configuration file parser.
 
 .. moduleauthor:: Ken Manheimer <klm@zope.com>
@@ -13,9 +10,10 @@
 .. sectionauthor:: Christopher G. Petrilli <petrilli@amber.org>
 
 .. note::
-   The :mod:`ConfigParser` module has been renamed to :mod:`configparser` in
-   Python 3.0.  It is importable under both names in Python 2.6 and the rest of
-   the 2.x series.
+
+   The :mod:`ConfigParser` module has been renamed to `configparser` in Python
+   3.0.  The :term:`2to3` tool will automatically adapt imports when converting
+   your sources to 3.0.
 
 .. index::
    pair: .ini; file
@@ -233,9 +231,9 @@
    load the required file or files using :meth:`readfp` before calling :meth:`read`
    for any optional files::
 
-      import configparser, os
+      import ConfigParser, os
 
-      config = configparser.ConfigParser()
+      config = ConfigParser.ConfigParser()
       config.readfp(open('defaults.cfg'))
       config.read(['site.cfg', os.path.expanduser('~/.myapp.cfg')])
 
@@ -375,10 +373,10 @@
 
 An example of writing to a configuration file::
 
-   import configparser
+   import ConfigParser
 
-   config = configparser.RawConfigParser()
-   
+   config = ConfigParser.RawConfigParser()
+
    # When adding sections or items, add them in the reverse order of
    # how you want them to be displayed in the actual file.
    # In addition, please note that using RawConfigParser's and the raw
@@ -393,16 +391,16 @@
    config.set('Section1', 'baz', 'fun')
    config.set('Section1', 'bar', 'Python')
    config.set('Section1', 'foo', '%(bar)s is %(baz)s!')
-   
+
    # Writing our configuration file to 'example.cfg'
    with open('example.cfg', 'wb') as configfile:
        config.write(configfile)
 
 An example of reading the configuration file again::
 
-   import configparser
+   import ConfigParser
 
-   config = configparser.RawConfigParser()
+   config = ConfigParser.RawConfigParser()
    config.read('example.cfg')
 
    # getfloat() raises an exception if the value is not a float
@@ -419,9 +417,9 @@
 To get interpolation, you will need to use a :class:`ConfigParser` or
 :class:`SafeConfigParser`::
 
-   import configparser
+   import ConfigParser
 
-   config = configparser.ConfigParser()
+   config = ConfigParser.ConfigParser()
    config.read('example.cfg')
 
    # Set the third, optional argument of get to 1 if you wish to use raw mode.
@@ -433,15 +431,15 @@
    print config.get('Section1', 'foo', 0, {'bar': 'Documentation',
                                            'baz': 'evil'})
 
-Defaults are available in all three types of ConfigParsers. They are used in 
+Defaults are available in all three types of ConfigParsers. They are used in
 interpolation if an option used is not defined elsewhere. ::
 
-   import configparser
+   import ConfigParser
 
    # New instance with 'bar' and 'baz' defaulting to 'Life' and 'hard' each
-   config = configparser.SafeConfigParser({'bar': 'Life', 'baz': 'hard'})
+   config = ConfigParser.SafeConfigParser({'bar': 'Life', 'baz': 'hard'})
    config.read('example.cfg')
-   
+
    print config.get('Section1', 'foo') # -> "Python is fun!"
    config.remove_option('Section1', 'bar')
    config.remove_option('Section1', 'baz')
@@ -452,7 +450,7 @@
    def opt_move(config, section1, section2, option):
        try:
            config.set(section2, option, config.get(section1, option, 1))
-       except configparser.NoSectionError:
+       except ConfigParser.NoSectionError:
            # Create non-existent section
            config.add_section(section2)
            opt_move(config, section1, section2, option)
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index bca1ece..1f7c59b 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -2240,12 +2240,12 @@
 
 .. function:: fileConfig(fname[, defaults])
 
-   Reads the logging configuration from a :mod:`configparser`\-format file named
-   *fname*.  This function can be called several times from an application,
-   allowing an end user the ability to select from various pre-canned
-   configurations (if the developer provides a mechanism to present the choices
-   and load the chosen configuration). Defaults to be passed to the ConfigParser
-   can be specified in the *defaults* argument.
+   Reads the logging configuration from a ConfigParser-format file named *fname*.
+   This function can be called several times from an application, allowing an end
+   user the ability to select from various pre-canned configurations (if the
+   developer provides a mechanism to present the choices and load the chosen
+   configuration). Defaults to be passed to ConfigParser can be specified in the
+   *defaults* argument.
 
 
 .. function:: listen([port])
@@ -2275,20 +2275,18 @@
 Configuration file format
 ^^^^^^^^^^^^^^^^^^^^^^^^^
 
-The configuration file format understood by :func:`fileConfig` is
-based on :mod:`configparser` functionality. The file must contain
-sections called ``[loggers]``, ``[handlers]`` and ``[formatters]``
-which identify by name the entities of each type which are defined in
-the file. For each such entity, there is a separate section which
-identified how that entity is configured. Thus, for a logger named
-``log01`` in the ``[loggers]`` section, the relevant configuration
-details are held in a section ``[logger_log01]``. Similarly, a handler
-called ``hand01`` in the ``[handlers]`` section will have its
-configuration held in a section called ``[handler_hand01]``, while a
-formatter called ``form01`` in the ``[formatters]`` section will have
-its configuration specified in a section called
-``[formatter_form01]``. The root logger configuration must be
-specified in a section called ``[logger_root]``.
+The configuration file format understood by :func:`fileConfig` is based on
+ConfigParser functionality. The file must contain sections called ``[loggers]``,
+``[handlers]`` and ``[formatters]`` which identify by name the entities of each
+type which are defined in the file. For each such entity, there is a separate
+section which identified how that entity is configured. Thus, for a logger named
+``log01`` in the ``[loggers]`` section, the relevant configuration details are
+held in a section ``[logger_log01]``. Similarly, a handler called ``hand01`` in
+the ``[handlers]`` section will have its configuration held in a section called
+``[handler_hand01]``, while a formatter called ``form01`` in the
+``[formatters]`` section will have its configuration specified in a section
+called ``[formatter_form01]``. The root logger configuration must be specified
+in a section called ``[logger_root]``.
 
 Examples of these sections in the file are given below. ::
 
diff --git a/Doc/library/shlex.rst b/Doc/library/shlex.rst
index 1dfafbd..0ae77c1 100644
--- a/Doc/library/shlex.rst
+++ b/Doc/library/shlex.rst
@@ -63,7 +63,7 @@
 
 .. seealso::
 
-   Module :mod:`configparser`
+   Module :mod:`ConfigParser`
       Parser for configuration files similar to the Windows :file:`.ini` files.
 
 
diff --git a/Lib/lib-old/ConfigParser.py b/Lib/ConfigParser.py
similarity index 100%
rename from Lib/lib-old/ConfigParser.py
rename to Lib/ConfigParser.py
diff --git a/Lib/distutils/command/upload.py b/Lib/distutils/command/upload.py
index 92c4bf2..8805d41 100644
--- a/Lib/distutils/command/upload.py
+++ b/Lib/distutils/command/upload.py
@@ -14,11 +14,7 @@
 import base64
 import urlparse
 import cStringIO as StringIO
-try:
-    from configparser import ConfigParser
-except ImportError:
-    # For backward-compatibility with Python versions < 2.6.
-    from ConfigParser import ConfigParser
+from ConfigParser import ConfigParser
 
 
 class upload(PyPIRCCommand):
diff --git a/Lib/distutils/config.py b/Lib/distutils/config.py
index e07f8ac..e3a4c57 100644
--- a/Lib/distutils/config.py
+++ b/Lib/distutils/config.py
@@ -5,11 +5,7 @@
 """
 import os
 import sys
-try:
-    from configparser import ConfigParser
-except ImportError:
-    # For backward-compatibility with Python versions < 2.6.
-    from ConfigParser import ConfigParser
+from ConfigParser import ConfigParser
 
 from distutils.cmd import Command
 
diff --git a/Lib/distutils/dist.py b/Lib/distutils/dist.py
index 6299919..0a21380 100644
--- a/Lib/distutils/dist.py
+++ b/Lib/distutils/dist.py
@@ -358,11 +358,7 @@
 
 
     def parse_config_files (self, filenames=None):
-        try:
-            from configparser import ConfigParser
-        except ImportError:
-            # For backward-compatibility with Python versions < 2.6.
-            from ConfigParser import ConfigParser
+        from ConfigParser import ConfigParser
 
         if filenames is None:
             filenames = self.find_config_files()
diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py
index bdce85d..3fc2a60 100644
--- a/Lib/idlelib/configHandler.py
+++ b/Lib/idlelib/configHandler.py
@@ -21,7 +21,7 @@
 import sys
 import string
 import macosxSupport
-from configparser import ConfigParser, NoOptionError, NoSectionError
+from ConfigParser import ConfigParser, NoOptionError, NoSectionError
 
 class InvalidConfigType(Exception): pass
 class InvalidConfigSet(Exception): pass
diff --git a/Lib/logging/config.py b/Lib/logging/config.py
index dc13723..c95842c 100644
--- a/Lib/logging/config.py
+++ b/Lib/logging/config.py
@@ -65,9 +65,9 @@
     rather than a filename, in which case the file-like object will be read
     using readfp.
     """
-    import configparser
+    import ConfigParser
 
-    cp = configparser.ConfigParser(defaults)
+    cp = ConfigParser.ConfigParser(defaults)
     if hasattr(cp, 'readfp') and hasattr(fname, 'readline'):
         cp.readfp(fname)
     else:
diff --git a/Lib/test/test___all__.py b/Lib/test/test___all__.py
index 57933d2..1076c61 100644
--- a/Lib/test/test___all__.py
+++ b/Lib/test/test___all__.py
@@ -37,7 +37,7 @@
         self.check_all("BaseHTTPServer")
         self.check_all("Bastion")
         self.check_all("CGIHTTPServer")
-        self.check_all("configparser")
+        self.check_all("ConfigParser")
         self.check_all("Cookie")
         self.check_all("MimeWriter")
         self.check_all("Queue")
diff --git a/Lib/test/test_cfgparser.py b/Lib/test/test_cfgparser.py
index 4dfa795..a8b5d7c 100644
--- a/Lib/test/test_cfgparser.py
+++ b/Lib/test/test_cfgparser.py
@@ -1,4 +1,4 @@
-import configparser
+import ConfigParser
 import StringIO
 import unittest
 import UserDict
@@ -94,7 +94,7 @@
                     "remove_option() failed to report non-existance of option"
                     " that was removed")
 
-        self.assertRaises(configparser.NoSectionError,
+        self.assertRaises(ConfigParser.NoSectionError,
                           cf.remove_option, 'No Such Section', 'foo')
 
         eq(cf.get('Long Line', 'foo'),
@@ -147,17 +147,17 @@
 
     def test_parse_errors(self):
         self.newconfig()
-        self.parse_error(configparser.ParsingError,
+        self.parse_error(ConfigParser.ParsingError,
                          "[Foo]\n  extra-spaces: splat\n")
-        self.parse_error(configparser.ParsingError,
+        self.parse_error(ConfigParser.ParsingError,
                          "[Foo]\n  extra-spaces= splat\n")
-        self.parse_error(configparser.ParsingError,
+        self.parse_error(ConfigParser.ParsingError,
                          "[Foo]\noption-without-value\n")
-        self.parse_error(configparser.ParsingError,
+        self.parse_error(ConfigParser.ParsingError,
                          "[Foo]\n:value-without-option-name\n")
-        self.parse_error(configparser.ParsingError,
+        self.parse_error(ConfigParser.ParsingError,
                          "[Foo]\n=value-without-option-name\n")
-        self.parse_error(configparser.MissingSectionHeaderError,
+        self.parse_error(ConfigParser.MissingSectionHeaderError,
                          "No Section!\n")
 
     def parse_error(self, exc, src):
@@ -170,13 +170,13 @@
                          "new ConfigParser should have no defined sections")
         self.failIf(cf.has_section("Foo"),
                     "new ConfigParser should have no acknowledged sections")
-        self.assertRaises(configparser.NoSectionError,
+        self.assertRaises(ConfigParser.NoSectionError,
                           cf.options, "Foo")
-        self.assertRaises(configparser.NoSectionError,
+        self.assertRaises(ConfigParser.NoSectionError,
                           cf.set, "foo", "bar", "value")
-        self.get_error(configparser.NoSectionError, "foo", "bar")
+        self.get_error(ConfigParser.NoSectionError, "foo", "bar")
         cf.add_section("foo")
-        self.get_error(configparser.NoOptionError, "foo", "bar")
+        self.get_error(ConfigParser.NoOptionError, "foo", "bar")
 
     def get_error(self, exc, section, option):
         try:
@@ -215,7 +215,7 @@
     def test_weird_errors(self):
         cf = self.newconfig()
         cf.add_section("Foo")
-        self.assertRaises(configparser.DuplicateSectionError,
+        self.assertRaises(ConfigParser.DuplicateSectionError,
                           cf.add_section, "Foo")
 
     def test_write(self):
@@ -324,7 +324,7 @@
 
 
 class ConfigParserTestCase(TestCaseBase):
-    config_class = configparser.ConfigParser
+    config_class = ConfigParser.ConfigParser
 
     def test_interpolation(self):
         cf = self.get_interpolation_config()
@@ -335,11 +335,11 @@
            "something with lots of interpolation (9 steps)")
         eq(cf.get("Foo", "bar10"),
            "something with lots of interpolation (10 steps)")
-        self.get_error(configparser.InterpolationDepthError, "Foo", "bar11")
+        self.get_error(ConfigParser.InterpolationDepthError, "Foo", "bar11")
 
     def test_interpolation_missing_value(self):
         cf = self.get_interpolation_config()
-        e = self.get_error(configparser.InterpolationError,
+        e = self.get_error(ConfigParser.InterpolationError,
                            "Interpolation Error", "name")
         self.assertEqual(e.reference, "reference")
         self.assertEqual(e.section, "Interpolation Error")
@@ -375,7 +375,7 @@
 
 
 class RawConfigParserTestCase(TestCaseBase):
-    config_class = configparser.RawConfigParser
+    config_class = ConfigParser.RawConfigParser
 
     def test_interpolation(self):
         cf = self.get_interpolation_config()
@@ -410,7 +410,7 @@
 
 
 class SafeConfigParserTestCase(ConfigParserTestCase):
-    config_class = configparser.SafeConfigParser
+    config_class = ConfigParser.SafeConfigParser
 
     def test_safe_interpolation(self):
         # See http://www.python.org/sf/511737
diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py
index a456154..180342b 100644
--- a/Lib/test/test_py3kwarn.py
+++ b/Lib/test/test_py3kwarn.py
@@ -213,48 +213,9 @@
             self.assertEquals(str(w.message), msg)
 
 
-class TestStdlibRenames(unittest.TestCase):
-
-    renames = {'ConfigParser': 'configparser'}
-
-    def check_rename(self, module_name, new_module_name):
-        """Make sure that:
-        - A DeprecationWarning is raised when importing using the
-          old 2.x module name.
-        - The module can be imported using the new 3.x name.
-        - The warning message specify both names.
-        """
-        with CleanImport(module_name):
-            with catch_warning(record=False) as w:
-                warnings.filterwarnings("error", ".+ renamed to",
-                                        DeprecationWarning)
-                try:
-                    __import__(module_name, level=0)
-                except DeprecationWarning as exc:
-                    self.assert_(module_name in exc.args[0])
-                    self.assert_(new_module_name in exc.args[0])
-                else:
-                    self.fail("DeprecationWarning not raised for %s" %
-                              module_name)
-        with CleanImport(new_module_name):
-            try:
-                __import__(new_module_name, level=0)
-            except ImportError:
-                self.fail("cannot import %s with its 3.x name, %s" %
-                          module_name, new_module_name)
-            except DeprecationWarning:
-                self.fail("unexpected DeprecationWarning raised for %s" %
-                          module_name)
-
-    def test_module_renames(self):
-        for module_name, new_module_name in self.renames.items():
-            self.check_rename(module_name, new_module_name)
-
-
 def test_main():
     run_unittest(TestPy3KWarnings,
-                 TestStdlibRemovals,
-                 TestStdlibRenames)
+                 TestStdlibRemovals)
 
 if __name__ == '__main__':
     test_main()
diff --git a/Misc/NEWS b/Misc/NEWS
index b4b61e6..6b40164 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -135,9 +135,6 @@
 - The DEVICE, GL, gl, and cgen modules (which indirectly includes
   cgensupport) have been deprecated for removal in Python 3.0.
 
-- The ConfigParser module has been renamed 'configparser'.  The old
-  name is now deprecated.
-
 - The CL, CL_old, and cl modules for IRIX have been deprecated for
   removal in Python 3.0.
 
@@ -1904,13 +1901,13 @@
 Extension Modules
 -----------------
 
-- Patch #1657: added select.epoll and select.kqueue
+- Patch #1657: added select.epoll and select.kqueue.
 
 - Patch #1506171: added operator.methodcaller().
 
 - Patch #1826: operator.attrgetter() now supports dotted attribute paths.
 
-- Patch #1957: syslogmodule: Release GIL when calling syslog(3)
+- Patch #1957: syslogmodule: Release GIL when calling syslog(3).
 
 - Bug #2112: mmap.error is now a subclass of EnvironmentError and not
   a direct EnvironmentError.
diff --git a/Misc/cheatsheet b/Misc/cheatsheet
index 15c4d00..cb0702a 100644
--- a/Misc/cheatsheet
+++ b/Misc/cheatsheet
@@ -1862,7 +1862,7 @@
 colorsys         Conversion functions between RGB and other color systems.
 commands         Tools for executing UNIX commands .
 compileall       Force "compilation" of all .py files in a directory.
-configparser     Configuration file parser (much like windows .ini files)
+ConfigParser     Configuration file parser (much like windows .ini files)
 copy             Generic shallow and deep copying operations.
 copy_reg         Helper to provide extensibility for pickle/cPickle.
 csv              Read and write files with comma separated values.