--- urllib.py.old 2007-02-20 18:16:34.000000000 +0100 +++ urllib.py 2007-02-20 18:16:13.000000000 +0100 @@ -866,8 +866,15 @@ if not conn: # Set transfer mode to ASCII! self.ftp.voidcmd('TYPE A') - # Try a directory listing - if file: cmd = 'LIST ' + file + # Try a directory listing. Verify that directory exists. + if file: + pwd = self.ftp.pwd() + try: + self.ftp.cwd(file) + except ftplib.error_perm, reason: + raise IOError, reason, sys.exc_info()[2] + self.ftp.cwd(pwd) + cmd = 'LIST ' + file else: cmd = 'LIST' conn = self.ftp.ntransfercmd(cmd) self.busy = 1