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

................
  r78433 | senthil.kumaran | 2010-02-25 02:33:37 +0530 (Thu, 25 Feb 2010) | 10 lines

  Merged revisions 78431 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r78431 | senthil.kumaran | 2010-02-25 02:25:31 +0530 (Thu, 25 Feb 2010) | 4 lines

    Fix for Issue7540 ; urllib2 will raise a TypeError when you try to add_data to
    a existing req object already having data.
  ........
................
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index f0297a5..3e0a107 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -1220,6 +1220,7 @@
         self.get.add_data("spam")
         self.assertTrue(self.get.has_data())
         self.assertEqual("POST", self.get.get_method())
+        self.assertRaises(TypeError,self.get.add_data, "more spam")
 
     def test_get_full_url(self):
         self.assertEqual("http://www.python.org/~jeremy/",
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
index d1d12e6..47fe75e 100644
--- a/Lib/urllib/request.py
+++ b/Lib/urllib/request.py
@@ -192,6 +192,9 @@
     # Begin deprecated methods
 
     def add_data(self, data):
+        if self.has_data():
+            raise TypeError("Request Obj already contains data: %s" %
+                            self.data)
         self.data = data
 
     def has_data(self):