diff --git a/tests/regressiontests/requests/tests.py b/tests/regressiontests/requests/tests.py
--- a/tests/regressiontests/requests/tests.py
+++ b/tests/regressiontests/requests/tests.py
@@ -5,6 +5,7 @@
 from django.core.handlers.modpython import ModPythonRequest
 from django.core.handlers.wsgi import WSGIRequest, LimitedStream
 from django.http import HttpRequest, HttpResponse, parse_cookie
+from django.test.client import MULTIPART_CONTENT, BOUNDARY, FakePayload, encode_multipart
 from django.utils import unittest
 from django.utils.http import cookie_date
 
@@ -133,13 +134,21 @@
         request = WSGIRequest({'REQUEST_METHOD': 'POST', 'wsgi.input': StringIO('name=value')})
         self.assertEqual(request.read(), 'name=value')
 
-    def test_read_after_value(self):
+    def test_read_after_POST(self):
         """
         Reading from request is allowed after accessing request contents as
-        POST or raw_post_data.
+        POST.
         """
         request = WSGIRequest({'REQUEST_METHOD': 'POST', 'wsgi.input': StringIO('name=value')})
         self.assertEqual(request.POST, {u'name': [u'value']})
+        self.assertEqual(request.read(), 'name=value')
+
+    def test_read_after_raw_post_data(self):
+        """
+        Reading from request is allowed after accessing request contents as
+        raw_post_data.
+        """
+        request = WSGIRequest({'REQUEST_METHOD': 'POST', 'wsgi.input': StringIO('name=value')})
         self.assertEqual(request.raw_post_data, 'name=value')
         self.assertEqual(request.read(), 'name=value')
 
@@ -156,3 +165,29 @@
     def test_read_by_lines(self):
         request = WSGIRequest({'REQUEST_METHOD': 'POST', 'wsgi.input': StringIO('name=value')})
         self.assertEqual(list(request), ['name=value'])
+
+    def test_POST_after_raw_post_data(self):
+        post_data = encode_multipart(BOUNDARY,dict(testkey="testvalue"))
+        env =  {
+            'SERVER_PROTOCOL': 'HTTP/1.0',
+            'REQUEST_METHOD': 'POST',
+            'wsgi.input': FakePayload(post_data),
+            'CONTENT_TYPE': MULTIPART_CONTENT,
+            'CONTENT_LENGTH': len(post_data)
+        }
+        request = WSGIRequest(env)
+        nop = request.raw_post_data  # Access the raw data
+        self.assertEqual(request.POST['testkey'], 'testvalue') # POST still should be accesible
+
+    def test_raw_post_data_after_POST(self):
+        post_data = encode_multipart(BOUNDARY,dict(testkey="testvalue"))
+        env =  {
+            'SERVER_PROTOCOL': 'HTTP/1.0',
+            'REQUEST_METHOD': 'POST',
+            'wsgi.input': FakePayload(post_data),
+            'CONTENT_TYPE': MULTIPART_CONTENT,
+            'CONTENT_LENGTH': len(post_data)
+        }
+        request = WSGIRequest(env)
+        nop = request.POST['testkey'] # Access POST
+        self.assertEqual(len(request.raw_post_data), len(post_data)) # raw_post_data still should be accesible
