diff -r b49e366556ba Lib/urllib/request.py --- a/Lib/urllib/request.py Mon Jun 02 14:43:24 2014 +0200 +++ b/Lib/urllib/request.py Tue Jun 03 11:54:11 2014 +0300 @@ -2251,8 +2251,12 @@ import ftplib self.busy = 0 self.ftp = ftplib.FTP() - self.ftp.connect(self.host, self.port, self.timeout) - self.ftp.login(self.user, self.passwd) + try: + self.ftp.connect(self.host, self.port, self.timeout) + self.ftp.login(self.user, self.passwd) + except ftplib.Error: + self.ftp.close() + raise _target = '/'.join(self.dirs) self.ftp.cwd(_target)