diff -r c68426b241ca Lib/urllib/request.py --- a/Lib/urllib/request.py Sat Jan 07 15:32:52 2012 -0800 +++ b/Lib/urllib/request.py Sun Jan 08 11:49:35 2012 +0530 @@ -1162,11 +1162,22 @@ try: h.request(req.get_method(), req.selector, req.data, headers) - except socket.error as err: # timeout error + except (http.client.HTTPException) as err: # error h.close() - raise URLError(err) + raise URLError("http.client.Exception %s:%s"%(err.__class__.__name__,str(err))) + except (socket.error) as err: + h.close() + raise URLError("socket.error %s:%s"%(err.__class__.__name__,str(err))) else: - r = h.getresponse() + try: + r = h.getresponse() + except (http.client.HTTPException) as err: + h.close() + raise URLError("http.client.Exception %s:%s"%(err.__class__.__name__,str(err))) + except (socket.error) as err: + h.close() + raise URLError("socket.error %s:%s"%(err.__class__.__name__,str(err))) + r.url = req.get_full_url() # This line replaces the .msg attribute of the HTTPResponse diff -r c68426b241ca Misc/ACKS --- a/Misc/ACKS Sat Jan 07 15:32:52 2012 -0800 +++ b/Misc/ACKS Sun Jan 08 11:49:35 2012 +0530 @@ -1106,3 +1106,4 @@ Kai Zhu Tarek Ziadé Peter Åstrand +Jyotirmoy Bhattacharya