diff --git a/Lib/functools.py b/Lib/functools.py
index bd1334b..7ce6bc2 100644
--- a/Lib/functools.py
+++ b/Lib/functools.py
@@ -65,6 +65,7 @@
     return partial(update_wrapper, wrapped=wrapped,
                    assigned=assigned, updated=updated)
 
+_object_defaults = {object.__lt__, object.__le__, object.__gt__, object.__ge__}
 def total_ordering(cls):
     """Class decorator that fills in missing ordering methods"""
     convert = {
@@ -81,7 +82,9 @@
                    ('__gt__', lambda self, other: not other >= self),
                    ('__lt__', lambda self, other: not self >= other)]
     }
-    roots = set(dir(cls)) & set(convert)
+    roots = (set(dir(cls)) & set(convert))
+    # Remove default comparison operations defined on object.
+    roots -= {meth for meth in roots if getattr(cls, meth) in _object_defaults}
     if not roots:
         raise ValueError('must define at least one ordering operation: < > <= >=')
     root = max(roots)       # prefer __lt__ to __le__ to __gt__ to __ge__
diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py
index 211ef18..41a98a2 100644
--- a/Lib/test/test_functools.py
+++ b/Lib/test/test_functools.py
@@ -481,7 +481,7 @@
         # new methods should not overwrite existing
         @functools.total_ordering
         class A(int):
-            raise Exception()
+            pass
         self.assert_(A(1) < A(2))
         self.assert_(A(2) > A(1))
         self.assert_(A(1) <= A(2))
@@ -564,6 +564,7 @@
         TestPartialSubclass,
         TestPythonPartial,
         TestUpdateWrapper,
+        TestTotalOrdering,
         TestWraps,
         TestReduce,
         TestLRU,
