Index: django/views/generic/date_based.py
===================================================================
--- django/views/generic/date_based.py	(revision 4300)
+++ django/views/generic/date_based.py	(working copy)
@@ -103,6 +103,8 @@
 
     Templates: ``<app_label>/<model_name>_archive_month.html``
     Context:
+        date_list
+            List of days in this month with objects
         month:
             (date) this month
         next_month:
@@ -133,7 +135,8 @@
     if last_day >= now.date() and not allow_future:
         lookup_kwargs['%s__lte' % date_field] = now
     object_list = queryset.filter(**lookup_kwargs)
-    if not object_list and not allow_empty:
+    date_list = object_list.dates(date_field, 'day')
+    if not date_list and not allow_empty:
         raise Http404
 
     # Calculate the next month, if applicable.
@@ -148,6 +151,7 @@
         template_name = "%s/%s_archive_month.html" % (model._meta.app_label, model._meta.object_name.lower())
     t = template_loader.get_template(template_name)
     c = RequestContext(request, {
+        'date_list': date_list,
         '%s_list' % template_object_name: object_list,
         'month': date,
         'next_month': next_month,
Index: docs/generic_views.txt
===================================================================
--- docs/generic_views.txt	(revision 4290)
+++ docs/generic_views.txt	(working copy)
@@ -381,6 +381,10 @@
 
 In addition to ``extra_context``, the template's context will be:
 
+    * ``date_list``: A list of ``datetime.date`` objects representing all
+      days that have objects available in the given month, according to
+      ``queryset``, in ascending order.
+
     * ``month``: A ``datetime.date`` object representing the given month.
 
     * ``next_month``: A ``datetime.date`` object representing the first day of
