Index: django/conf/global_settings.py
===================================================================
--- django/conf/global_settings.py	(revision 6783)
+++ django/conf/global_settings.py	(working copy)
@@ -244,6 +244,10 @@
 # http://www.djangoproject.com/documentation/templates/#now
 MONTH_DAY_FORMAT = 'F j'
 
+# Default number of the first day of the week, starting sunday.
+# 0 = Sunday, 1 = Monday, 2 = Tuesday etc.
+WEEK_START_DAY = 0
+
 # Do you want to manage transactions manually?
 # Hint: you really don't!
 TRANSACTIONS_MANAGED = False
Index: django/contrib/admin/media/js/calendar.js
===================================================================
--- django/contrib/admin/media/js/calendar.js	(revision 6783)
+++ django/contrib/admin/media/js/calendar.js	(working copy)
@@ -55,11 +55,16 @@
 
         // Draw days-of-week header
         var tableRow = quickElement('tr', tableBody);
-        for (var i = 0; i < 7; i++) {
-            quickElement('th', tableRow, CalendarNamespace.daysOfWeek[i]);
+        for (var i = week_start_day; i < week_start_day+7; i++) {
+            if (i < 7) {
+                dayIndex = i;
+            } else {
+                dayIndex = i - 7;
+            }
+            quickElement('th', tableRow, CalendarNamespace.daysOfWeek[dayIndex]);
         }
 
-        var startingPos = new Date(year, month-1, 1).getDay();
+        var startingPos = new Date(year, month-1, 1-week_start_day).getDay();
         var days = CalendarNamespace.getDaysInMonth(month, year);
 
         // Draw blanks before first of month
Index: django/contrib/admin/media/js/admin/DateTimeShortcuts.js
===================================================================
--- django/contrib/admin/media/js/admin/DateTimeShortcuts.js	(revision 6783)
+++ django/contrib/admin/media/js/admin/DateTimeShortcuts.js	(working copy)
@@ -13,6 +13,7 @@
     clockLinkName: 'clocklink',      // name of the link that is used to toggle
     admin_media_prefix: '',
     init: function() {
+        week_start_day = week_start_day%7;
         // Deduce admin_media_prefix by looking at the <script>s in the
         // current document and finding the URL of *this* module.
         var scripts = document.getElementsByTagName('script');
@@ -250,5 +251,3 @@
         if (e.stopPropagation) e.stopPropagation();
     }
 }
-
-addEvent(window, 'load', DateTimeShortcuts.init);
Index: django/contrib/admin/templatetags/admincalendar.py
===================================================================
--- django/contrib/admin/templatetags/admincalendar.py	(revision 0)
+++ django/contrib/admin/templatetags/admincalendar.py	(revision 0)
@@ -0,0 +1,14 @@
+from django.template import Library
+
+register = Library()
+
+def admin_week_start():
+    """
+    Returns the integer contained in the setting WEEK_START_DAY.
+    """
+    try:
+        from django.conf import settings
+    except ImportError:
+        return ''
+    return settings.WEEK_START_DAY
+admin_week_start = register.simple_tag(admin_week_start)
Index: django/contrib/admin/views/main.py
===================================================================
--- django/contrib/admin/views/main.py	(revision 6783)
+++ django/contrib/admin/views/main.py	(working copy)
@@ -212,6 +212,7 @@
         'has_delete_permission': context['perms'][app_label][opts.get_delete_permission()],
         'has_change_permission': context['perms'][app_label][opts.get_change_permission()],
         'has_file_field': opts.has_field_type(models.FileField),
+        'has_date_field': opts.has_field_type(models.DateTimeField) or opts.has_field_type(models.TimeField) or opts.has_field_type(models.DateField),
         'has_absolute_url': hasattr(model, 'get_absolute_url'),
         'auto_populated_fields': auto_populated_fields,
         'bound_field_sets': bound_field_sets,
Index: django/contrib/admin/templates/admin/change_form.html
===================================================================
--- django/contrib/admin/templates/admin/change_form.html	(revision 6783)
+++ django/contrib/admin/templates/admin/change_form.html	(working copy)
@@ -64,6 +64,12 @@
    {% auto_populated_field_script auto_populated_fields change %}
    </script>
 {% endif %}
+{% if has_date_field %}{% load admincalendar %}
+<script type="text/javascript">
+    week_start_day = {% admin_week_start %};
+    addEvent(window, 'load', DateTimeShortcuts.init);
+</script>
+{% endif %}
 </div>
 </form></div>
 {% endblock %}
Index: docs/settings.txt
===================================================================
--- docs/settings.txt	(revision 6783)
+++ docs/settings.txt	(working copy)
@@ -1025,6 +1025,16 @@
 set to ``False``, Django will make some optimizations so as not to load the
 internationalization machinery.
 
+WEEK_START_DAY
+--------------
+
+Default: ``0``
+
+An integer representing the first day of the week, where 0 is Sunday, 1 is
+Monday, 2 is Tuesday, 3 is Wednesday, 4 is Thursday, 5 is Friday and 6 is
+Saturday. This is used in the Django admin contrib app in DateTimeField and
+DateField.
+
 YEAR_MONTH_FORMAT
 -----------------
 
