Make close(), and hence __del__(), robust in the light of the world
being destroyed already.
diff --git a/Lib/shelve.py b/Lib/shelve.py
index b159e61..9b65a09 100644
--- a/Lib/shelve.py
+++ b/Lib/shelve.py
@@ -74,9 +74,12 @@
 		del self.dict[key]
 	
 	def close(self):
-		if hasattr(self.dict, 'close'):
-			self.dict.close()
-		self.dict = None
+		try:
+			if self.dict:
+				self.dict.close()
+		except:
+			pass
+		self.dict = 0
 
 	def __del__(self):
 		self.close()