diff -urN formatter.orig/base.py formatter/base.py
--- formatter.orig/base.py	2005-01-10 02:48:50.000000000 +0800
+++ formatter/base.py	2005-11-27 15:43:04.000000000 +0800
@@ -189,7 +189,7 @@
 
     # Lists ##############################################################
 
-    def number_list(self, on, type=None, start=None):
+    def number_list(self, on, type=None, start=None, style=None):
         raise NotImplementedError
 
     def bullet_list(self, on):
diff -urN formatter.orig/dom_xml.py formatter/dom_xml.py
--- formatter.orig/dom_xml.py	2005-01-10 02:48:07.000000000 +0800
+++ formatter/dom_xml.py	2005-11-27 15:44:26.000000000 +0800
@@ -278,8 +278,8 @@
     def highlight(self, on):
         return self._set_tag('highlight', on)
 
-    def number_list(self, on, type=None, start=None):
-        return self._set_tag('ol', on, type=type, start=start)
+    def number_list(self, on, type=None, start=None, style=None):
+        return self._set_tag('ol', on, type=type, start=start, style=style)
 
     def bullet_list(self, on):
         return self._set_tag('ul', on)
diff -urN formatter.orig/text_html.py formatter/text_html.py
--- formatter.orig/text_html.py	2005-03-08 20:21:06.000000000 +0800
+++ formatter/text_html.py	2005-11-27 16:43:42.000000000 +0800
@@ -523,7 +523,7 @@
 
     # Lists ##############################################################
 
-    def number_list(self, on, type=None, start=None):
+    def number_list(self, on, type=None, start=None, style=None):
         tag = 'ol'
         if on:
             attr = {}
@@ -531,6 +531,8 @@
                 attr['type'] = type
             if start is not None:
                 attr['start'] = start
+            if style is not None:
+                attr['style'] = style
             return self.open(tag, newline=1, attr=attr)
         return self.close(tag)
     
@@ -581,7 +583,10 @@
         count_depth = max(depth - (self._base_depth - 1), 1)
 
         # check numbering, possibly changing the default
-        if self._show_section_numbers is None:
+	show_section_numbers = self._show_section_numbers	# default
+        if kw.get('show_section_numbers',None) is not None:	# override
+            show_section_numbers = kw['show_section_numbers']
+        elif self._show_section_numbers is None:	# need to set default
             self._show_section_numbers = self.cfg.show_section_numbers
             numbering = self.request.getPragma('section-numbers', '').lower()
             if numbering in ['0', 'off']:
@@ -591,6 +596,7 @@
             elif numbering in ['2', '3', '4', '5', '6']:
                 # explicit base level for section number display
                 self._show_section_numbers = int(numbering)
+            show_section_numbers = self._show_section_numbers
 
         heading_depth = depth + 1
 
@@ -600,13 +606,13 @@
             
         # create section number
         number = ''
-        if self._show_section_numbers:
+        if show_section_numbers:
             # count headings on all levels
             self.request._fmt_hd_counters = self.request._fmt_hd_counters[:count_depth]
             while len(self.request._fmt_hd_counters) < count_depth:
                 self.request._fmt_hd_counters.append(0)
             self.request._fmt_hd_counters[-1] = self.request._fmt_hd_counters[-1] + 1
-            number = '.'.join(map(str, self.request._fmt_hd_counters[self._show_section_numbers-1:]))
+            number = '.'.join(map(str, self.request._fmt_hd_counters[show_section_numbers-1:]))
             if number: number += ". "
 
         attr = {}
diff -urN formatter.orig/text_plain.py formatter/text_plain.py
--- formatter.orig/text_plain.py	2005-01-10 02:48:07.000000000 +0800
+++ formatter/text_plain.py	2005-11-27 15:44:59.000000000 +0800
@@ -90,7 +90,7 @@
     def highlight(self, on):
         return u''
 
-    def number_list(self, on, type=None, start=None):
+    def number_list(self, on, type=None, start=None, style=None):
         if on:
             self._in_list = 1
             return [u'\n', u'\n\n'][not self._did_para]
