diff --git a/Lib/mailbox.py b/Lib/mailbox.py
index b72128b..ed7c7d1 100755
--- a/Lib/mailbox.py
+++ b/Lib/mailbox.py
@@ -120,13 +120,10 @@
         """Return a list of (key, message) tuples. Memory intensive."""
         return list(self.iteritems())
 
-    def has_key(self, key):
+    def __contains__(self, key):
         """Return True if the keyed message exists, False otherwise."""
         raise NotImplementedError('Method must be implemented by subclass')
 
-    def __contains__(self, key):
-        return self.has_key(key)
-
     def __len__(self):
         """Return a count of messages in the mailbox."""
         raise NotImplementedError('Method must be implemented by subclass')
@@ -330,7 +327,7 @@
                 continue
             yield key
 
-    def has_key(self, key):
+    def __contains__(self, key):
         """Return True if the keyed message exists, False otherwise."""
         self._refresh()
         return key in self._toc
@@ -515,7 +512,7 @@
         for key in self._toc.keys():
             yield key
 
-    def has_key(self, key):
+    def __contains__(self, key):
         """Return True if the keyed message exists, False otherwise."""
         self._lookup()
         return key in self._toc
@@ -902,7 +899,7 @@
         return iter(sorted(int(entry) for entry in os.listdir(self._path)
                                       if entry.isdigit()))
 
-    def has_key(self, key):
+    def __contains__(self, key):
         """Return True if the keyed message exists, False otherwise."""
         return os.path.exists(os.path.join(self._path, str(key)))
 
