diff --git a/django/views/generic/dates.py b/django/views/generic/dates.py
index 5f5f959..d0a073b 100644
--- a/django/views/generic/dates.py
+++ b/django/views/generic/dates.py
@@ -171,7 +171,7 @@ class BaseDateListView(MultipleObjectMixin, DateMixin, View):
     def get(self, request, *args, **kwargs):
         self.date_list, self.object_list, extra_context = self.get_dated_items()
         context = self.get_context_data(object_list=self.object_list,
-                                        date_list=self.date_list)
+                                        date_list=self.date_list, **kwargs)
         context.update(extra_context)
         return self.render_to_response(context)
 
diff --git a/django/views/generic/detail.py b/django/views/generic/detail.py
index b9278bb..fe8460a 100644
--- a/django/views/generic/detail.py
+++ b/django/views/generic/detail.py
@@ -96,7 +96,7 @@ class SingleObjectMixin(object):
 class BaseDetailView(SingleObjectMixin, View):
     def get(self, request, *args, **kwargs):
         self.object = self.get_object()
-        context = self.get_context_data(object=self.object)
+        context = self.get_context_data(object=self.object, **kwargs)
         return self.render_to_response(context)
 
 
diff --git a/django/views/generic/edit.py b/django/views/generic/edit.py
index 3cade52..e46ff68 100644
--- a/django/views/generic/edit.py
+++ b/django/views/generic/edit.py
@@ -129,7 +129,9 @@ class ProcessFormView(View):
     def get(self, request, *args, **kwargs):
         form_class = self.get_form_class()
         form = self.get_form(form_class)
-        return self.render_to_response(self.get_context_data(form=form))
+        return self.render_to_response(
+            self.get_context_data(form=form, **kwargs),
+        )
 
     def post(self, request, *args, **kwargs):
         form_class = self.get_form_class()
diff --git a/django/views/generic/list.py b/django/views/generic/list.py
index 9797356..63f2808 100644
--- a/django/views/generic/list.py
+++ b/django/views/generic/list.py
@@ -116,7 +116,7 @@ class BaseListView(MultipleObjectMixin, View):
         if not allow_empty and len(self.object_list) == 0:
             raise Http404(_(u"Empty list and '%(class_name)s.allow_empty' is False.")
                           % {'class_name': self.__class__.__name__})
-        context = self.get_context_data(object_list=self.object_list)
+        context = self.get_context_data(object_list=self.object_list, **kwargs)
         return self.render_to_response(context)
 
 
diff --git a/tests/regressiontests/generic_views/dates.py b/tests/regressiontests/generic_views/dates.py
index 652f66b..22f03bc 100644
--- a/tests/regressiontests/generic_views/dates.py
+++ b/tests/regressiontests/generic_views/dates.py
@@ -3,8 +3,11 @@ from __future__ import absolute_import
 import datetime
 
 from django.core.exceptions import ImproperlyConfigured
+from django.core.urlresolvers import reverse
 from django.test import TestCase
+from django.test.client import RequestFactory
 
+from . import views
 from .models import Book
 
 
@@ -21,7 +24,7 @@ class ArchiveIndexViewTests(TestCase):
                 pubdate=base_date - datetime.timedelta(days=1))
 
     def test_archive_view(self):
-        res = self.client.get('/dates/books/')
+        res = self.client.get(reverse('books_archive'))
         self.assertEqual(res.status_code, 200)
         self.assertEqual(res.context['date_list'], Book.objects.dates('pubdate', 'year')[::-1])
         self.assertEqual(list(res.context['latest']), list(Book.objects.all()))
@@ -37,7 +40,7 @@ class ArchiveIndexViewTests(TestCase):
 
     def test_empty_archive_view(self):
         Book.objects.all().delete()
-        res = self.client.get('/dates/books/')
+        res = self.client.get(reverse('books_archive'))
         self.assertEqual(res.status_code, 404)
 
     def test_allow_empty_archive_view(self):
@@ -78,6 +81,13 @@ class ArchiveIndexViewTests(TestCase):
         self.assertEqual(res.context['page_obj'].number, 2)
         self.assertEqual(list(res.context['latest']), list(Book.objects.all()[10:20]))
 
+    def test_datebaselistview_regression_t17795(self):
+        factory = RequestFactory()
+        request = factory.get(reverse('books_archive'))
+        res = views.BookArchive.as_view()(request, foo='bar')
+        self.assertEqual(res.context_data.get('foo'), 'bar',
+            msg='context_data now contains the foo kwargs')
+
 
 class YearArchiveViewTests(TestCase):
     fixtures = ['generic-views-test-data.json']
@@ -132,6 +142,7 @@ class YearArchiveViewTests(TestCase):
         res = self.client.get('/dates/books/no_year/')
         self.assertEqual(res.status_code, 404)
 
+
 class MonthArchiveViewTests(TestCase):
     fixtures = ['generic-views-test-data.json']
     urls = 'regressiontests.generic_views.urls'
@@ -291,6 +302,7 @@ class WeekArchiveViewTests(TestCase):
         self.assertEqual(res.status_code, 200)
         self.assertEqual(res.context['week'], datetime.date(2008, 9, 29))
 
+
 class DayArchiveViewTests(TestCase):
     fixtures = ['generic-views-test-data.json']
     urls = 'regressiontests.generic_views.urls'
@@ -373,12 +385,13 @@ class DayArchiveViewTests(TestCase):
         self.assertEqual(res.status_code, 404)
 
     def test_today_view(self):
-        res = self.client.get('/dates/books/today/')
+        res = self.client.get(reverse('today_books'))
         self.assertEqual(res.status_code, 404)
         res = self.client.get('/dates/books/today/allow_empty/')
         self.assertEqual(res.status_code, 200)
         self.assertEqual(res.context['day'], datetime.date.today())
 
+
 class DateDetailViewTests(TestCase):
     fixtures = ['generic-views-test-data.json']
     urls = 'regressiontests.generic_views.urls'
diff --git a/tests/regressiontests/generic_views/detail.py b/tests/regressiontests/generic_views/detail.py
index 0b5d873..ecb4697 100644
--- a/tests/regressiontests/generic_views/detail.py
+++ b/tests/regressiontests/generic_views/detail.py
@@ -1,12 +1,15 @@
 from __future__ import absolute_import
 
 from django.core.exceptions import ImproperlyConfigured
+from django.core.urlresolvers import reverse
 from django.test import TestCase
+from django.test.client import RequestFactory
 
+from . import views
 from .models import Artist, Author, Page
 
 
-class DetailViewTest(TestCase):
+class DetailViewTests(TestCase):
     fixtures = ['generic-views-test-data.json']
     urls = 'regressiontests.generic_views.urls'
 
@@ -92,3 +95,10 @@ class DetailViewTest(TestCase):
 
     def test_invalid_queryset(self):
         self.assertRaises(ImproperlyConfigured, self.client.get, '/detail/author/invalid/qs/')
+
+    def test_detailview_regression_t17795(self):
+        factory = RequestFactory()
+        request = factory.get(reverse('author_detail', kwargs={'pk': 1}))
+        res = views.AuthorDetail.as_view()(request, pk='1', foo='bar')
+        self.assertEqual(res.context_data.get('foo'), 'bar',
+            msg='context_data now contains the foo kwargs')
diff --git a/tests/regressiontests/generic_views/edit.py b/tests/regressiontests/generic_views/edit.py
index 2bd982e..aef8ba8 100644
--- a/tests/regressiontests/generic_views/edit.py
+++ b/tests/regressiontests/generic_views/edit.py
@@ -4,6 +4,7 @@ from django.core.exceptions import ImproperlyConfigured
 from django.core.urlresolvers import reverse
 from django import forms
 from django.test import TestCase
+from django.test.client import RequestFactory
 from django.utils.unittest import expectedFailure
 
 from . import views
@@ -15,6 +16,7 @@ class ModelFormMixinTests(TestCase):
         form_class = views.AuthorGetQuerySetFormView().get_form_class()
         self.assertEqual(form_class._meta.model, Author)
 
+
 class CreateViewTests(TestCase):
     urls = 'regressiontests.generic_views.urls'
 
@@ -92,6 +94,14 @@ class CreateViewTests(TestCase):
         self.assertEqual(res.status_code, 302)
         self.assertRedirects(res, 'http://testserver/accounts/login/?next=/edit/authors/create/restricted/')
 
+    def test_createview_regression_t17795(self):
+        factory = RequestFactory()
+        request = factory.get(reverse('author_create'))
+        res = views.AuthorCreate.as_view()(request, foo='bar')
+        self.assertEqual(res.context_data.get('foo'), 'bar',
+            msg='context_data now contains the foo kwargs')
+
+
 class UpdateViewTests(TestCase):
     urls = 'regressiontests.generic_views.urls'
 
@@ -228,6 +238,7 @@ class UpdateViewTests(TestCase):
         self.assertRedirects(res, 'http://testserver/list/authors/')
         self.assertQuerysetEqual(Author.objects.all(), ['<Author: Randall Munroe (xkcd)>'])
 
+
 class DeleteViewTests(TestCase):
     urls = 'regressiontests.generic_views.urls'
 
@@ -284,4 +295,3 @@ class DeleteViewTests(TestCase):
             self.fail('Should raise exception -- No redirect URL provided, and no get_absolute_url provided')
         except ImproperlyConfigured:
             pass
-
diff --git a/tests/regressiontests/generic_views/list.py b/tests/regressiontests/generic_views/list.py
index 9ad00ed..536edaf 100644
--- a/tests/regressiontests/generic_views/list.py
+++ b/tests/regressiontests/generic_views/list.py
@@ -1,8 +1,11 @@
 from __future__ import absolute_import
 
 from django.core.exceptions import ImproperlyConfigured
+from django.core.urlresolvers import reverse
 from django.test import TestCase
+from django.test.client import RequestFactory
 
+from . import views
 from .models import Author, Artist
 
 
@@ -164,3 +167,9 @@ class ListViewTests(TestCase):
         for i in range(n):
             Author.objects.create(name='Author %02i' % i, slug='a%s' % i)
 
+    def test_listview_regression_t17795(self):
+        factory = RequestFactory()
+        request = factory.get(reverse('authors_list'))
+        res = views.AuthorList.as_view()(request, foo='bar')
+        self.assertEqual(res.context_data.get('foo'), 'bar',
+            msg='context_data now contains the foo kwargs')
diff --git a/tests/regressiontests/generic_views/tests.py b/tests/regressiontests/generic_views/tests.py
index d387216..5693b06 100644
--- a/tests/regressiontests/generic_views/tests.py
+++ b/tests/regressiontests/generic_views/tests.py
@@ -4,7 +4,7 @@ from .base import ViewTest, TemplateViewTest, RedirectViewTest
 from .dates import (ArchiveIndexViewTests, YearArchiveViewTests,
     MonthArchiveViewTests, WeekArchiveViewTests, DayArchiveViewTests,
     DateDetailViewTests)
-from .detail import DetailViewTest
+from .detail import DetailViewTests
 from .edit import (ModelFormMixinTests, CreateViewTests, UpdateViewTests,
     DeleteViewTests)
 from .list import ListViewTests
diff --git a/tests/regressiontests/generic_views/urls.py b/tests/regressiontests/generic_views/urls.py
index 090ec73..787676a 100644
--- a/tests/regressiontests/generic_views/urls.py
+++ b/tests/regressiontests/generic_views/urls.py
@@ -28,10 +28,10 @@ urlpatterns = patterns('',
         views.ObjectDetail.as_view()),
     url(r'^detail/artist/(?P<pk>\d+)/$',
         views.ArtistDetail.as_view(),
-        name="artist_detail"),
+        name='artist_detail'),
     url(r'^detail/author/(?P<pk>\d+)/$',
         views.AuthorDetail.as_view(),
-        name="author_detail"),
+        name='author_detail'),
     (r'^detail/author/bycustompk/(?P<foo>\d+)/$',
         views.AuthorDetail.as_view(pk_url_kwarg='foo')),
     (r'^detail/author/byslug/(?P<slug>[\w-]+)/$',
@@ -54,8 +54,9 @@ urlpatterns = patterns('',
         views.AuthorDetail.as_view(queryset=None)),
 
     # Create/UpdateView
-    (r'^edit/artists/create/$',
-        views.ArtistCreate.as_view()),
+    url(r'^edit/artists/create/$',
+        views.ArtistCreate.as_view(),
+        name='author_create'),
     (r'^edit/artists/(?P<pk>\d+)/update/$',
         views.ArtistUpdate.as_view()),
 
@@ -94,8 +95,9 @@ urlpatterns = patterns('',
         views.SpecializedAuthorDelete.as_view()),
 
     # ArchiveIndexView
-    (r'^dates/books/$',
-        views.BookArchive.as_view()),
+    url(r'^dates/books/$',
+        views.BookArchive.as_view(),
+        name='books_archive'),
     (r'^dates/books/context_object_name/$',
         views.BookArchive.as_view(context_object_name='thingies')),
     (r'^dates/books/allow_empty/$',
@@ -116,10 +118,10 @@ urlpatterns = patterns('',
         views.DictList.as_view(paginate_by=1)),
     url(r'^list/artists/$',
         views.ArtistList.as_view(),
-        name="artists_list"),
+        name='artists_list'),
     url(r'^list/authors/$',
         views.AuthorList.as_view(),
-        name="authors_list"),
+        name='authors_list'),
     (r'^list/authors/paginated/$',
         views.AuthorList.as_view(paginate_by=30)),
     (r'^list/authors/paginated/(?P<page>\d+)/$',
@@ -200,8 +202,9 @@ urlpatterns = patterns('',
         views.BookDayArchive.as_view()),
 
     # TodayArchiveView
-    (r'dates/books/today/$',
-        views.BookTodayArchive.as_view()),
+    url(r'dates/books/today/$',
+        views.BookTodayArchive.as_view(),
+        name='today_books'),
     (r'dates/books/today/allow_empty/$',
         views.BookTodayArchive.as_view(allow_empty=True)),
 
