diff -r 184ddd9acd5a Lib/mailbox.py --- a/Lib/mailbox.py Wed Apr 06 09:35:57 2011 -0400 +++ b/Lib/mailbox.py Wed Apr 06 22:29:41 2011 +0200 @@ -76,7 +76,13 @@ if not self._factory: return self.get_message(key) else: - return self._factory(self.get_file(key)) + file = self.get_file(key) + message = self._factory(file) + try: + file.close() + except AttributeError: + del file + return message def get_message(self, key): """Return a Message representation or raise a KeyError."""