diff --git a/Lib/repr.py b/Lib/repr.py
index 0431857..2fa3bab 100644
--- a/Lib/repr.py
+++ b/Lib/repr.py
@@ -2,6 +2,8 @@
 
 __all__ = ["Repr","repr"]
 
+import __builtin__
+
 class Repr:
     def __init__(self):
         self.maxlevel = 6
@@ -22,7 +24,7 @@
         if hasattr(self, 'repr_' + typename):
             return getattr(self, 'repr_' + typename)(x, level)
         else:
-            s = `x`
+            s = __builtin__.repr(x)
             if len(s) > self.maxother:
                 i = max(0, (self.maxother-3)//2)
                 j = max(0, self.maxother-3-i)
@@ -81,15 +83,15 @@
         if n > self.maxdict: s = s + ', ...'
         return '{' + s + '}'
     def repr_str(self, x, level):
-        s = `x[:self.maxstring]`
+        s = __builtin__.repr(x[:self.maxstring])
         if len(s) > self.maxstring:
             i = max(0, (self.maxstring-3)//2)
             j = max(0, self.maxstring-3-i)
-            s = `x[:i] + x[len(x)-j:]`
+            s = __builtin__.repr(x[:i] + x[len(x)-j:])
             s = s[:i] + '...' + s[len(s)-j:]
         return s
     def repr_long(self, x, level):
-        s = `x` # XXX Hope this isn't too slow...
+        s = __builtin__.repr(x) # XXX Hope this isn't too slow...
         if len(s) > self.maxlong:
             i = max(0, (self.maxlong-3)//2)
             j = max(0, self.maxlong-3-i)
@@ -97,7 +99,7 @@
         return s
     def repr_instance(self, x, level):
         try:
-            s = `x`
+            s = __builtin__.repr(x)
             # Bugs in x.__repr__() can cause arbitrary
             # exceptions -- then make up something
         except:
