diff -r 1a5c72f9ff53 Lib/tempfile.py --- a/Lib/tempfile.py Fri Mar 20 11:32:17 2015 -0400 +++ b/Lib/tempfile.py Sun Mar 22 12:21:21 2015 -0400 @@ -427,8 +427,10 @@ # iter() doesn't use __getattr__ to find the __iter__ method def __iter__(self): # Don't return iter(self.file), but yield from it to avoid closing - # file as long as it's being used as iterator, see issue #23000. - # XXX Also don't use "yield from"! + # file as long as it's being used as iterator (see issue #23700). We + # can't use 'yield from' here because iter(file) returns the file + # object itself, which has a close method, and thus the file would get + # closed when the generator is finalized, due to PEP380 semantics. for line in self.file: yield line