=== modified file 'django/utils/dateformat.py'
--- django/utils/dateformat.py	2007-02-13 16:11:28 +0000
+++ django/utils/dateformat.py	2007-02-13 16:24:50 +0000
@@ -16,7 +16,7 @@
 from calendar import isleap, monthrange
 import re, time
 
-re_formatchars = re.compile(r'(?<!\\)([aABdDfFgGhHiIjlLmMnNOPrsStTUwWyYzZ])')
+re_formatchars = re.compile(r'(?<!\\)([aAbBdDfFgGhHiIjlLmMnNOPrsStTUwWyYzZ])')
 re_escaped = re.compile(r'\\(.)')
 
 class Formatter(object):
@@ -110,6 +110,10 @@
         if hasattr(self.data, 'hour') and not self.timezone:
             self.timezone = LocalTimezone(dt)
 
+    def b(self):
+        "Month, textual, 3 letters, lowercase; e.g. 'jan'"
+        return MONTHS_3[self.data.month]
+
     def d(self):
         "Day of the month, 2 digits with leading zeros; i.e. '01' to '31'"
         return '%02d' % self.data.day

=== modified file 'docs/templates.txt'
--- docs/templates.txt	2007-02-13 16:11:28 +0000
+++ docs/templates.txt	2007-02-13 16:43:46 +0000
@@ -645,6 +645,7 @@
                       output, because this includes periods
                       to match Associated Press style.)
     A                 ``'AM'`` or ``'PM'``.                     ``'AM'``
+    b                 Month, textual, 3 letters, lowercase.     ``'jan'``
     B                 Not implemented.
     d                 Day of the month, 2 digits with           ``'01'`` to ``'31'``
                       leading zeros.

