In open_ftp(), check that retrlen is not None before using it in a %d format!
diff --git a/Lib/urllib.py b/Lib/urllib.py
index d175eef..d37906c 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -387,7 +387,7 @@
 				   value in ('a', 'A', 'i', 'I', 'd', 'D'):
 					type = string.upper(value)
                         (fp, retrlen) = self.ftpcache[key].retrfile(file, type)
-                        if retrlen >= 0:
+                        if retrlen is not None and retrlen >= 0:
                             import mimetools, StringIO
                             headers = mimetools.Message(StringIO.StringIO(
                                 'Content-Length: %d\n' % retrlen))