diff --git a/Demo/pdist/cmptree.py b/Demo/pdist/cmptree.py
index 1e9f985..f804d31 100755
--- a/Demo/pdist/cmptree.py
+++ b/Demo/pdist/cmptree.py
@@ -1,7 +1,7 @@
 """Compare local and remote dictionaries and transfer differing files -- like rdist."""
 
 import sys
-from repr import repr
+from reprlib import repr
 import FSProxy
 import time
 import os
diff --git a/Demo/pdist/server.py b/Demo/pdist/server.py
index 7e77971..b3943ff 100755
--- a/Demo/pdist/server.py
+++ b/Demo/pdist/server.py
@@ -4,7 +4,7 @@
 import socket
 import pickle
 from fnmatch import fnmatch
-from repr import repr
+from reprlib import repr
 
 
 # Default verbosity (0 = silent, 1 = print connections, 2 = print requests too)
diff --git a/Doc/library/repr.rst b/Doc/library/reprlib.rst
similarity index 91%
rename from Doc/library/repr.rst
rename to Doc/library/reprlib.rst
index 3f7fc22..84fd6fb 100644
--- a/Doc/library/repr.rst
+++ b/Doc/library/reprlib.rst
@@ -1,13 +1,13 @@
 
-:mod:`repr` --- Alternate :func:`repr` implementation
+:mod:`reprlib` --- Alternate :func:`repr` implementation
 =====================================================
 
-.. module:: repr
+.. module:: reprlib
    :synopsis: Alternate repr() implementation with size limits.
 .. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
 
 
-The :mod:`repr` module provides a means for producing object representations
+The :mod:`reprlib` module provides a means for producing object representations
 with limits on the size of the resulting strings. This is used in the Python
 debugger and may be useful in other contexts as well.
 
@@ -62,10 +62,13 @@
    default is ``4`` for :attr:`maxdict`, ``5`` for :attr:`maxarray`, and  ``6`` for
    the others.
 
+   .. versionadded:: 2.4
+      :attr:`maxset`, :attr:`maxfrozenset`, and :attr:`set`.
+
 
 .. attribute:: Repr.maxlong
 
-   Maximum number of characters in the representation for an integer.  Digits
+   Maximum number of characters in the representation for a long integer.  Digits
    are dropped from the middle.  The default is ``40``.
 
 
@@ -129,5 +132,5 @@
                return `obj`
 
    aRepr = MyRepr()
-   print(aRepr.repr(sys.stdin))          # prints '<stdin>'
+   print aRepr.repr(sys.stdin)          # prints '<stdin>'
 
diff --git a/Doc/tutorial/stdlib2.rst b/Doc/tutorial/stdlib2.rst
index d519fc4..33bc47a 100644
--- a/Doc/tutorial/stdlib2.rst
+++ b/Doc/tutorial/stdlib2.rst
@@ -13,11 +13,11 @@
 Output Formatting
 =================
 
-The :mod:`repr` module provides a version of :func:`repr` customized for
+The :mod:`reprlib` module provides a version of :func:`repr` customized for
 abbreviated displays of large or deeply nested containers::
 
-   >>> import repr   
-   >>> repr.repr(set('supercalifragilisticexpialidocious'))
+   >>> import reprlib
+   >>> reprlib.repr(set('supercalifragilisticexpialidocious'))
    "set(['a', 'c', 'd', 'e', 'f', 'g', ...])"
 
 The :mod:`pprint` module offers more sophisticated control over printing both
diff --git a/Lib/bdb.py b/Lib/bdb.py
index b8a20ec..747e092 100644
--- a/Lib/bdb.py
+++ b/Lib/bdb.py
@@ -324,7 +324,7 @@
     #
 
     def format_stack_entry(self, frame_lineno, lprefix=': '):
-        import linecache, repr
+        import linecache, reprlib
         frame, lineno = frame_lineno
         filename = self.canonic(frame.f_code.co_filename)
         s = '%s(%r)' % (filename, lineno)
@@ -337,13 +337,13 @@
         else:
             args = None
         if args:
-            s = s + repr.repr(args)
+            s = s + reprlib.repr(args)
         else:
             s = s + '()'
         if '__return__' in frame.f_locals:
             rv = frame.f_locals['__return__']
             s = s + '->'
-            s = s + repr.repr(rv)
+            s = s + reprlib.repr(rv)
         line = linecache.getline(filename, lineno)
         if line: s = s + lprefix + line.strip()
         return s
diff --git a/Lib/copy.py b/Lib/copy.py
index 899ee4d..a334b79 100644
--- a/Lib/copy.py
+++ b/Lib/copy.py
@@ -354,17 +354,16 @@
     print(l2)
     l.append({l[1]: l, 'xyz': l[2]})
     l3 = copy(l)
-    import repr
-    print(map(repr.repr, l))
-    print(map(repr.repr, l1))
-    print(map(repr.repr, l2))
-    print(map(repr.repr, l3))
+    import reprlib
+    print(map(reprlib.repr, l))
+    print(map(reprlib.repr, l1))
+    print(map(reprlib.repr, l2))
+    print(map(reprlib.repr, l3))
     l3 = deepcopy(l)
-    import repr
-    print(map(repr.repr, l))
-    print(map(repr.repr, l1))
-    print(map(repr.repr, l2))
-    print(map(repr.repr, l3))
+    print(map(reprlib.repr, l))
+    print(map(reprlib.repr, l1))
+    print(map(reprlib.repr, l2))
+    print(map(reprlib.repr, l3))
 
 if __name__ == '__main__':
     _test()
diff --git a/Lib/idlelib/Debugger.py b/Lib/idlelib/Debugger.py
index 346763f..00aa4bb 100644
--- a/Lib/idlelib/Debugger.py
+++ b/Lib/idlelib/Debugger.py
@@ -412,8 +412,8 @@
             height = 20*len(dict) # XXX 20 == observed height of Entry widget
         self.master = master
         self.title = title
-        import repr
-        self.repr = repr.Repr()
+        import reprlib
+        self.repr = reprlib.Repr()
         self.repr.maxstring = 60
         self.repr.maxother = 60
         self.frame = frame = Frame(master)
diff --git a/Lib/idlelib/ObjectBrowser.py b/Lib/idlelib/ObjectBrowser.py
index 75bc3a6..4cb432f 100644
--- a/Lib/idlelib/ObjectBrowser.py
+++ b/Lib/idlelib/ObjectBrowser.py
@@ -11,7 +11,7 @@
 
 from idlelib.TreeWidget import TreeItem, TreeNode, ScrolledCanvas
 
-from repr import Repr
+from reprlib import Repr
 
 myrepr = Repr()
 myrepr.maxstring = 100
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 7e1edb5..bc0ec68 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -8,7 +8,7 @@
 import linecache
 import cmd
 import bdb
-from repr import Repr
+from reprlib import Repr
 import os
 import re
 import pprint
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index c60a198..f94da3f 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -53,7 +53,7 @@
 #     path will be displayed.
 
 import sys, imp, os, re, inspect, builtins, pkgutil
-from repr import Repr
+from reprlib import Repr
 try:
     from collections import deque
 except ImportError:
diff --git a/Lib/test/test___all__.py b/Lib/test/test___all__.py
index dbc55cd..9d0487d 100644
--- a/Lib/test/test___all__.py
+++ b/Lib/test/test___all__.py
@@ -114,7 +114,7 @@
         self.check_all("quopri")
         self.check_all("random")
         self.check_all("re")
-        self.check_all("repr")
+        self.check_all("reprlib")
         self.check_all("rfc822")
         self.check_all("rlcompleter")
         self.check_all("robotparser")
diff --git a/Lib/test/test_repr.py b/Lib/test/test_repr.py
index ac1a0a0..442c048 100644
--- a/Lib/test/test_repr.py
+++ b/Lib/test/test_repr.py
@@ -9,8 +9,8 @@
 import unittest
 
 from test.test_support import run_unittest
-from repr import repr as r # Don't shadow builtin repr
-from repr import Repr
+from reprlib import repr as r # Don't shadow builtin repr
+from reprlib import Repr
 
 
 def nestedTuple(nesting):
diff --git a/Misc/NEWS b/Misc/NEWS
index 6eb022d..7bb3b3f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -42,6 +42,8 @@
 Library
 -------
 
+- The repr module has been renamed to reprlib.
+
 - The statvfs module has been removed.
 
 - #1713041: fix pprint's handling of maximum depth.
