WeakDictionary.items():  Do not allow (key,ref) pairs to leak out for
    dead references.
diff --git a/Lib/weakref.py b/Lib/weakref.py
index f6e07c9..cc7b494 100644
--- a/Lib/weakref.py
+++ b/Lib/weakref.py
@@ -67,12 +67,12 @@
                 return o
 
     def items(self):
-        L = self.data.items()
-        for i in range(len(L)):
+        L = []
+        for key, ref in self.data.items():
             key, ref = L[i]
             o = ref()
             if o is not None:
-                L[i] = key, o
+                L.append((key, o))
         return L
 
     def popitem(self):