diff --git a/Demo/pdist/cmptree.py b/Demo/pdist/cmptree.py
index f6c611f..dccd3ae 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 e692eea..ea70e71 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 96%
rename from Doc/library/repr.rst
rename to Doc/library/reprlib.rst
index 493e2b3..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.
 
diff --git a/Doc/tutorial/stdlib2.rst b/Doc/tutorial/stdlib2.rst
index 9da5213..79044f9 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 74870e3..5e4d7b4 100644
--- a/Lib/bdb.py
+++ b/Lib/bdb.py
@@ -325,7 +325,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)
@@ -338,13 +338,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 55ea660..26ab366 100644
--- a/Lib/copy.py
+++ b/Lib/copy.py
@@ -399,17 +399,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 f56460a..a56c224 100644
--- a/Lib/idlelib/Debugger.py
+++ b/Lib/idlelib/Debugger.py
@@ -413,8 +413,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 a2a6cee..8ff0041 100644
--- a/Lib/idlelib/ObjectBrowser.py
+++ b/Lib/idlelib/ObjectBrowser.py
@@ -11,7 +11,7 @@
 
 from 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 8616202..3ed7a2f 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 8007ed0..987d213 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -53,7 +53,7 @@
 #     path will be displayed.
 
 import sys, imp, os, re, types, inspect, __builtin__, pkgutil
-from repr import Repr
+from reprlib import Repr
 from string import expandtabs, find, join, lower, split, strip, rfind, rstrip
 try:
     from collections import deque
diff --git a/Lib/test/test___all__.py b/Lib/test/test___all__.py
index 63df10a..eaa9c25 100644
--- a/Lib/test/test___all__.py
+++ b/Lib/test/test___all__.py
@@ -123,7 +123,7 @@
         self.check_all("quopri")
         self.check_all("random")
         self.check_all("re")
-        self.check_all("repr")
+        self.check_all("reprlib")
         self.check_all("rexec")
         self.check_all("rfc822")
         self.check_all("rlcompleter")
diff --git a/Lib/test/test_repr.py b/Lib/test/test_repr.py
index 1094816..50f728c 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):
