aae8f4a
diff -up urlgrabber-3.0.0/urlgrabber/grabber.py.cleanup urlgrabber-3.0.0/urlgrabber/grabber.py
aae8f4a
--- urlgrabber-3.0.0/urlgrabber/grabber.py.cleanup	2007-11-29 10:25:13.000000000 +0000
aae8f4a
+++ urlgrabber-3.0.0/urlgrabber/grabber.py	2007-11-29 10:26:15.000000000 +0000
aae8f4a
@@ -1204,16 +1204,18 @@ class URLGrabberFileObject:
aae8f4a
         bs = 1024*8
aae8f4a
         size = 0
aae8f4a
 
aae8f4a
-        if amount is not None: bs = min(bs, amount - size)
aae8f4a
-        block = self.read(bs)
aae8f4a
-        size = size + len(block)
aae8f4a
-        while block:
aae8f4a
-            new_fo.write(block)
aae8f4a
+        try:
aae8f4a
             if amount is not None: bs = min(bs, amount - size)
aae8f4a
             block = self.read(bs)
aae8f4a
             size = size + len(block)
aae8f4a
+            while block:
aae8f4a
+                new_fo.write(block)
aae8f4a
+                if amount is not None: bs = min(bs, amount - size)
aae8f4a
+                block = self.read(bs)
aae8f4a
+                size = size + len(block)
aae8f4a
+        finally:
aae8f4a
+            new_fo.close()
aae8f4a
 
aae8f4a
-        new_fo.close()
aae8f4a
         try:
aae8f4a
             modified_tuple  = self.hdr.getdate_tz('last-modified')
aae8f4a
             modified_stamp  = rfc822.mktime_tz(modified_tuple)