Access the exception argument to see whether it starts with '500'.
Fixes #527855.
diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index cad7a5b..aaf12fe 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -487,8 +487,8 @@
             try:
                 return self.voidcmd('CDUP')
             except error_perm, msg:
-                if msg[:3] != '500':
-                    raise error_perm, msg
+                if msg.args[0][:3] != '500':
+                    raise
         elif dirname == '':
             dirname = '.'  # does nothing, but could return error
         cmd = 'CWD ' + dirname