diff --git a/Lib/collections.py b/Lib/collections.py
index 061106b..c69f4ca 100644
--- a/Lib/collections.py
+++ b/Lib/collections.py
@@ -171,7 +171,6 @@
         size += sizeof(self.__root) * n         # proxy objects
         return size
 
-    setdefault = MutableMapping.setdefault
     update = MutableMapping.update
     pop = MutableMapping.pop
     keys = MutableMapping.keys
@@ -179,6 +178,13 @@
     items = MutableMapping.items
     __ne__ = MutableMapping.__ne__
 
+    def setdefault(self, key, default=None):
+        'OD.setdefault(k[,d]) -> OD.get(k,d), also set OD[k]=d if k not in OD'
+        if key in self:
+            return self[key]
+        self[key] = default
+        return default
+
     @_recursive_repr()
     def __repr__(self):
         'od.__repr__() <==> repr(od)'
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py
index 02b9dc3..32ce35b 100644
--- a/Lib/test/test_collections.py
+++ b/Lib/test/test_collections.py
@@ -976,6 +976,12 @@
         # make sure 'x' is added to the end
         self.assertEqual(list(od.items())[-1], ('x', 10))
 
+        # make sure setdefault still works when __missing__ is defined
+        class Missing(OrderedDict):
+            def __missing__(self, key):
+                return 0
+        self.assertEqual(Missing().setdefault(5, 9), 9)
+
     def test_reinsert(self):
         # Given insert a, insert b, delete a, re-insert a,
         # verify that a is now later than b.
diff --git a/Misc/NEWS b/Misc/NEWS
index b6b968a..9ddd9b3 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -20,6 +20,9 @@
 Library
 -------
 
+- Fix collections.OrderedDict.setdefault() so that it works in
+  subclasses that define __missing__().
+
 - Issue 10786: unittest.TextTestRunner default stream no longer bound at
   import time. `sys.stderr` now looked up at instantiation time. Fix contributed
   by Mark Roddy.
