diff -r a3fc401a5612 django/views/generic/date_based.py
--- a/django/views/generic/date_based.py	Sun Mar 23 07:14:32 2008 -0300
+++ b/django/views/generic/date_based.py	Sun Mar 23 22:39:39 2008 -0300
@@ -10,7 +10,8 @@ def archive_index(request, queryset, dat
 def archive_index(request, queryset, date_field, num_latest=15,
         template_name=None, template_loader=loader,
         extra_context=None, allow_empty=True, context_processors=None,
-        mimetype=None, allow_future=False, template_object_name='latest'):
+        mimetype=None, allow_future=False, template_object_name='latest',
+        date_list_period='year'):
     """
     Generic top-level archive of date-based objects.
 
@@ -25,7 +26,10 @@ def archive_index(request, queryset, dat
     model = queryset.model
     if not allow_future:
         queryset = queryset.filter(**{'%s__lte' % date_field: datetime.datetime.now()})
-    date_list = queryset.dates(date_field, 'year')[::-1]
+    if date_list_period == 'month':
+        date_list = queryset.dates(date_field, 'month')[::-1]
+    else:
+        date_list = queryset.dates(date_field, 'year')[::-1]
     if not date_list and not allow_empty:
         raise Http404, "No %s available" % model._meta.verbose_name
 
diff -r a3fc401a5612 docs/generic_views.txt
--- a/docs/generic_views.txt	Sun Mar 23 07:14:32 2008 -0300
+++ b/docs/generic_views.txt	Sun Mar 23 22:39:39 2008 -0300
@@ -204,6 +204,10 @@ a date in the *future* are not included 
     * **New in Django development version:** ``template_object_name``:
       Designates the name of the template variable to use in the template
       context. By default, this is ``'latest'``.
+
+    * **New in Django development version:** ``date_list_period``: Specifies
+      what date period is placed in ``date_list``. Acceptable values are 
+      ``'year'`` and ``'month'``. By default, this is ``'year'``. 
 
 **Template name:**
 
