Index: django/test/client.py
===================================================================
--- django/test/client.py	(revision 11616)
+++ django/test/client.py	(working copy)
@@ -459,11 +459,15 @@
             redirect_chain = response.redirect_chain
             redirect_chain.append((url, response.status_code))
 
+            extra = {}
+            if scheme:
+                extra['wsgi.url_scheme'] = scheme
+
             # The test client doesn't handle external links,
             # but since the situation is simulated in test_client,
             # we fake things here by ignoring the netloc portion of the
             # redirected URL.
-            response = self.get(path, QueryDict(query), follow=False)
+            response = self.get(path, QueryDict(query), follow=False, **extra)
             response.redirect_chain = redirect_chain
 
             # Prevent loops
Index: tests/modeltests/test_client/views.py
===================================================================
--- tests/modeltests/test_client/views.py	(revision 11616)
+++ tests/modeltests/test_client/views.py	(working copy)
@@ -62,6 +62,12 @@
         query = ''
     return HttpResponseRedirect('/test_client/get_view/' + query)
 
+def view_with_secure(request):
+    "A view that indicates if the request was secure"
+    response = HttpResponse()
+    response.test_was_secure_request = request.is_secure()
+    return response
+
 def double_redirect_view(request):
     "A view that redirects all requests to a redirection view"
     return HttpResponseRedirect('/test_client/permanent_redirect_view/')
Index: tests/modeltests/test_client/models.py
===================================================================
--- tests/modeltests/test_client/models.py	(revision 11616)
+++ tests/modeltests/test_client/models.py	(working copy)
@@ -138,6 +138,16 @@
         self.assertRedirects(response, 'http://testserver/test_client/get_view/', status_code=302, target_status_code=200)
         self.assertEquals(len(response.redirect_chain), 2)
 
+    def test_redirect_http(self):
+        "GET a URL that redirects to an http URI"
+        response = self.client.get('/test_client/http_redirect_view/',follow=True)
+        self.assert_(not response.test_was_secure_request)
+
+    def test_redirect_https(self):
+        "GET a URL that redirects to an https URI"
+        response = self.client.get('/test_client/https_redirect_view/',follow=True)
+        self.assert_(response.test_was_secure_request)
+
     def test_notfound_response(self):
         "GET a URL that responds as '404:Not Found'"
         response = self.client.get('/test_client/bad_view/')
Index: tests/modeltests/test_client/urls.py
===================================================================
--- tests/modeltests/test_client/urls.py	(revision 11616)
+++ tests/modeltests/test_client/urls.py	(working copy)
@@ -8,8 +8,11 @@
     (r'^header_view/$', views.view_with_header),
     (r'^raw_post_view/$', views.raw_post_view),
     (r'^redirect_view/$', views.redirect_view),
+    (r'^secure_view/$', views.view_with_secure),
     (r'^permanent_redirect_view/$', redirect_to, {'url': '/test_client/get_view/'}),
     (r'^temporary_redirect_view/$', redirect_to, {'url': '/test_client/get_view/', 'permanent': False}),
+    (r'^http_redirect_view/$', redirect_to, {'url': '/test_client/secure_view/'}),
+    (r'^https_redirect_view/$', redirect_to, {'url': 'https://testserver/test_client/secure_view/'}),
     (r'^double_redirect_view/$', views.double_redirect_view),
     (r'^bad_view/$', views.bad_view),
     (r'^form_view/$', views.form_view),
