Merged revisions 85025 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85025 | senthil.kumaran | 2010-09-27 06:56:03 +0530 (Mon, 27 Sep 2010) | 6 lines

  Fix Issue1595365 - Adding the req.headers after the un-redirect headers have
  been added. This helps in accidental overwritting of User-Agent header to
  default value. To preserve the old behavior, only headers not in unredirected
  headers will be updated.
........
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
index c638cfa..464f847 100644
--- a/Lib/urllib/request.py
+++ b/Lib/urllib/request.py
@@ -1063,8 +1063,10 @@
             raise URLError('no host given')
 
         h = http_class(host, timeout=req.timeout) # will parse host:port
-        headers = dict(req.headers)
-        headers.update(req.unredirected_hdrs)
+
+        headers = dict(req.unredirected_hdrs)
+        headers.update(dict((k, v) for k, v in req.headers.items()
+                            if k not in headers))
 
         # TODO(jhylton): Should this be redesigned to handle
         # persistent connections?