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..50f600d 100644
--- a/django/views/generic/edit.py
+++ b/django/views/generic/edit.py
@@ -129,7 +129,8 @@ 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))
+        kwargs['form'] = form
+        return self.render_to_response(self.get_context_data(**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/edit.py b/tests/regressiontests/generic_views/edit.py
index 182615a..d92bc99 100644
--- a/tests/regressiontests/generic_views/edit.py
+++ b/tests/regressiontests/generic_views/edit.py
@@ -15,6 +15,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'
 
@@ -78,6 +79,12 @@ class CreateViewTests(TestCase):
         self.assertRedirects(res, reverse('author_detail', kwargs={'pk': obj.pk}))
         self.assertQuerysetEqual(Author.objects.all(), ['<Author: Randall Munroe>'])
 
+    def test_regression_t17795(self):
+        res = self.client.get('/edit/authors/create/special/t17795/')
+        self.assertEqual(res.status_code, 200)
+        self.assertIn('key', res.context, msg='key from get_context_data is expected')
+        self.assertIn('new_key', res.context, msg='new_key from get is expected')
+
     def test_create_without_redirect(self):
         try:
             res = self.client.post('/edit/authors/create/naive/',
@@ -92,6 +99,7 @@ class CreateViewTests(TestCase):
         self.assertEqual(res.status_code, 302)
         self.assertRedirects(res, 'http://testserver/accounts/login/?next=/edit/authors/create/restricted/')
 
+
 class UpdateViewTests(TestCase):
     urls = 'regressiontests.generic_views.urls'
 
@@ -224,6 +232,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'
 
diff --git a/tests/regressiontests/generic_views/urls.py b/tests/regressiontests/generic_views/urls.py
index 090ec73..355f568 100644
--- a/tests/regressiontests/generic_views/urls.py
+++ b/tests/regressiontests/generic_views/urls.py
@@ -71,6 +71,8 @@ urlpatterns = patterns('',
         views.AuthorCreate.as_view()),
     (r'^edit/authors/create/special/$',
         views.SpecializedAuthorCreate.as_view()),
+    (r'^edit/authors/create/special/t17795/$',
+        views.CreateView_t17795.as_view()),
 
     (r'^edit/author/(?P<pk>\d+)/update/naive/$',
         views.NaiveAuthorUpdate.as_view()),
diff --git a/tests/regressiontests/generic_views/views.py b/tests/regressiontests/generic_views/views.py
index 5ff9cf0..5284d57 100644
--- a/tests/regressiontests/generic_views/views.py
+++ b/tests/regressiontests/generic_views/views.py
@@ -184,3 +184,21 @@ class BookDetailGetObjectCustomQueryset(BookDetail):
     def get_object(self, queryset=None):
         return super(BookDetailGetObjectCustomQueryset,self).get_object(
             queryset=Book.objects.filter(pk=2))
+
+
+class CreateView_t17795(generic.CreateView):
+    model = Author
+    form_class = AuthorForm
+    template_name = 'generic_views/form.html'
+    context_object_name = 'thingy'
+
+    def get_success_url(self):
+        return reverse('author_detail', args=[self.object.id,])
+
+    def get_context_data(self, **kwargs):
+        kwargs.update({'key': 'value'})
+        return super(CreateView_t17795, self).get_context_data(**kwargs)
+
+    def get(self, request, *args, **kwargs):
+        kwargs.update({'new_key': 'new value'})
+        return super(CreateView_t17795, self).get(request, *args, **kwargs)
