Oops.  Catching OverflowError from int() doesn't help, since it raises
ValueError on too-large inputs.
diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index 8d8d51f..592f5d2 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -508,7 +508,7 @@
             s = resp[3:].strip()
             try:
                 return int(s)
-            except OverflowError:
+            except (OverflowError, ValueError):
                 return long(s)
 
     def mkd(self, dirname):
@@ -558,7 +558,7 @@
     s = m.group(1)
     try:
         return int(s)
-    except OverflowError:
+    except (OverflowError, ValueError):
         return long(s)