diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py
old mode 100644
new mode 100755
index 3a5c12b..03deab2
--- a/django/contrib/admin/sites.py
+++ b/django/contrib/admin/sites.py
@@ -14,6 +14,7 @@ from django.utils.text import capfirst
 from django.utils.translation import ugettext as _
 from django.views.decorators.cache import never_cache
 from django.conf import settings
+from django.http import HttpResponseRedirect
 
 LOGIN_FORM_KEY = 'this_is_the_login_form'
 
@@ -188,7 +189,10 @@ class AdminSite(object):
         """
         def inner(request, *args, **kwargs):
             if not self.has_permission(request):
-                return self.login(request)
+                extra_context = {}
+                if request.path.endswith(reverse('admin:logout')):
+                    extra_context[REDIRECT_FIELD_NAME] = reverse('admin:index')
+                return self.login(request, extra_context)
             return view(request, *args, **kwargs)
         if not cacheable:
             inner = never_cache(inner)
diff --git a/django/contrib/auth/views.py b/django/contrib/auth/views.py
old mode 100644
new mode 100755
diff --git a/tests/regressiontests/admin_views/tests.py b/tests/regressiontests/admin_views/tests.py
old mode 100644
new mode 100755
index b6e7b9e..95d935d
--- a/tests/regressiontests/admin_views/tests.py
+++ b/tests/regressiontests/admin_views/tests.py
@@ -3255,3 +3255,25 @@ class AdminCustomSaveRelatedTests(TestCase):
 
         self.assertEqual('Josh Stone', Parent.objects.latest('id').name)
         self.assertEqual([u'Catherine Stone', u'Paul Stone'], children_names)
+
+
+class AdminViewLogoutTest(TestCase): 
+    urls = "regressiontests.admin_views.urls"
+    fixtures = ['admin-views-users.xml', ] 
+
+    def setUp(self): 
+        self.client.login(username='super', password='secret') 
+
+    def tearDown(self): 
+        self.client.logout()
+
+    def test_client_logout_url_can_be_used_to_login(self):
+        response = self.client.get('/test_admin/admin/logout/') 
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(response.template_name, 'registration/logged_out.html')
+        self.assertEqual(response.request['PATH_INFO'], '/test_admin/admin/logout/')
+
+        # we are now logged out - issue a GET request to `/test_admin/admin/logout/`
+        response = self.client.get('/test_admin/admin/logout/')
+        self.assertTrue(
+            '<input type="hidden" name="next" value="/test_admin/admin/" />' in response.content)
