Index: django/newforms/widgets.py
===================================================================
--- django/newforms/widgets.py	(revision 5505)
+++ django/newforms/widgets.py	(working copy)
@@ -20,6 +20,7 @@
     'HiddenInput', 'MultipleHiddenInput',
     'FileInput', 'Textarea', 'CheckboxInput',
     'Select', 'NullBooleanSelect', 'SelectMultiple', 'RadioSelect',
+    'RadioFieldRenderer',
     'CheckboxSelectMultiple', 'MultiWidget', 'SplitDateTimeWidget',
 )
 
@@ -258,12 +259,20 @@
         return u'<ul>\n%s\n</ul>' % u'\n'.join([u'<li>%s</li>' % w for w in self])
 
 class RadioSelect(Select):
+    field_renderer = RadioFieldRenderer
+
+    def __init__(self, *args, **kwargs):
+        field_renderer = kwargs.pop('field_renderer', None)
+        if field_renderer:
+            self.field_renderer = field_renderer
+        super(RadioSelect, self).__init__(*args, **kwargs)
+
     def render(self, name, value, attrs=None, choices=()):
         "Returns a RadioFieldRenderer instance rather than a Unicode string."
         if value is None: value = ''
         str_value = smart_unicode(value) # Normalize to string.
         final_attrs = self.build_attrs(attrs)
-        return RadioFieldRenderer(name, str_value, final_attrs, list(chain(self.choices, choices)))
+        return self.field_renderer(name, str_value, final_attrs, list(chain(self.choices, choices)))
 
     def id_for_label(self, id_):
         # RadioSelect is represented by multiple <input type="radio"> fields,
Index: tests/regressiontests/forms/tests.py
===================================================================
--- tests/regressiontests/forms/tests.py	(revision 5505)
+++ tests/regressiontests/forms/tests.py	(working copy)
@@ -688,6 +688,17 @@
 <li><label><input type="radio" id="bar_3" value="R" name="beatle" /> Ringo</label></li>
 </ul>
 
+# Override the field_renderer to change the output
+>>> class MyRenderer(RadioFieldRenderer):
+...    def __unicode__(self):
+...        return u',\n'.join([u'%s' % w for w in self])
+>>> w = RadioSelect(field_renderer=MyRenderer)
+>>> print w.render('beatle', 'G', choices=(('J', 'John'), ('P', 'Paul'), ('G', 'George'), ('R', 'Ringo')))
+<label><input type="radio" name="beatle" value="J" /> John</label>,
+<label><input type="radio" name="beatle" value="P" /> Paul</label>,
+<label><input checked="checked" type="radio" name="beatle" value="G" /> George</label>,
+<label><input type="radio" name="beatle" value="R" /> Ringo</label>
+
 # CheckboxSelectMultiple Widget ###############################################
 
 >>> w = CheckboxSelectMultiple()
