Index: Objects/fileobject.c =================================================================== --- Objects/fileobject.c (revision 54926) +++ Objects/fileobject.c (working copy) @@ -872,8 +872,10 @@ buffersize - bytesread, f->f_fp, (PyObject *)f); Py_END_ALLOW_THREADS if (chunksize == 0) { - if (!ferror(f->f_fp)) + if (!ferror(f->f_fp)) { + clearerr(f->f_fp); break; + } clearerr(f->f_fp); /* When in non-blocking mode, data shouldn't * be discarded if a blocking signal was