Fix OrderedDict.setdefault() to work for subclasses that define __missing__().
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)'