Patch #624936: Implement __contains__.
diff --git a/Lib/shelve.py b/Lib/shelve.py
index fa2a136..ae8df3f 100644
--- a/Lib/shelve.py
+++ b/Lib/shelve.py
@@ -19,7 +19,7 @@
                         # such key)
         del d[key]      # delete data stored at key (raises KeyError
                         # if no such key)
-        flag = d.has_key(key)   # true if the key exists
+        flag = d.has_key(key)   # true if the key exists; same as "key in d"
         list = d.keys() # a list of all existing keys (slow!)
 
         d.close()       # close it
@@ -61,6 +61,9 @@
     def has_key(self, key):
         return self.dict.has_key(key)
 
+    def __contains__(self, key):
+        return self.dict.has_key(key)
+
     def get(self, key, default=None):
         if self.dict.has_key(key):
             return self[key]