Index: django/core/files/base.py
===================================================================
--- django/core/files/base.py	(revision 9497)
+++ django/core/files/base.py	(working copy)
@@ -68,13 +68,12 @@
 
         if hasattr(self, 'seek'):
             self.seek(0)
-        # Assume the pointer is at zero...
-        counter = self.size
+        
+        chunk = self.read(chunk_size)
+        while len(chunk) > 0:
+            yield chunk
+            chunk = self.read(chunk_size)
 
-        while counter > 0:
-            yield self.read(chunk_size)
-            counter -= chunk_size
-
     def multiple_chunks(self, chunk_size=None):
         """
         Returns ``True`` if you can expect multiple chunks.
