=== modified file 'django/newforms/widgets.py'
--- django/newforms/widgets.py	2007-05-07 16:38:08 +0000
+++ django/newforms/widgets.py	2007-05-15 18:52:42 +0000
@@ -253,7 +253,8 @@
 
     def __unicode__(self):
         "Outputs a <ul> for this set of radio fields."
-        return u'<ul>\n%s\n</ul>' % u'\n'.join([u'<li>%s</li>' % w for w in self])
+        contents = u'\n'.join([u'<li>%s</li>' % w for w in self])
+        return u'<ul%s>\n%s\n</ul>' % (flatatt(self.attrs), contents)
 
 class RadioSelect(Select):
     def render(self, name, value, attrs=None, choices=()):
@@ -278,7 +279,7 @@
         if value is None: value = []
         has_id = attrs and 'id' in attrs
         final_attrs = self.build_attrs(attrs, name=name)
-        output = [u'<ul>']
+        output = [u'<ul%s>' % flatatt(final_attrs)]
         str_values = set([smart_unicode(v) for v in value]) # Normalize to strings.
         for i, (option_value, option_label) in enumerate(chain(self.choices, choices)):
             # If an ID attribute was given, add a numeric index as a suffix,
@@ -287,8 +288,10 @@
                 final_attrs = dict(final_attrs, id='%s_%s' % (attrs['id'], i))
             cb = CheckboxInput(final_attrs, check_test=lambda value: value in str_values)
             option_value = smart_unicode(option_value)
+            option_label = escape(smart_unicode(option_label))
             rendered_cb = cb.render(name, option_value)
-            output.append(u'<li><label>%s %s</label></li>' % (rendered_cb, escape(smart_unicode(option_label))))
+            contents = u'<label>%s %s</label>' % (rendered_cb, option_label)
+            output.append(u'<li%s>%s</li>' % (flatatt(final_attrs), contents))
         output.append(u'</ul>')
         return u'\n'.join(output)
 

