iteritems() should not have been used for self.timeout which changes during the loop.
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index c64b7c1..ace3353 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -1012,7 +1012,7 @@
         # first check for old ones
         t = time.time()
         if self.soonest <= t:
-            for k, v in self.timeout.iteritems():
+            for k, v in self.timeout.items():
                 if v < t:
                     self.cache[k].close()
                     del self.cache[k]