Index: newforms/widgets.py
===================================================================
--- newforms/widgets.py	(Revision 5830)
+++ newforms/widgets.py	(Arbeitskopie)
@@ -200,20 +201,23 @@
         return {u'2': True, u'3': False, True: True, False: False}.get(value, None)
 
 class SelectMultiple(Widget):
-    def __init__(self, attrs=None, choices=()):
+    def __init__(self, attrs=None, choices=(), disabled=None):
         # choices can be any iterable
         self.attrs = attrs or {}
         self.choices = choices
-
+        self.disabled = disabled or set()
+        
     def render(self, name, value, attrs=None, choices=()):
         if value is None: value = []
         final_attrs = self.build_attrs(attrs, name=name)
         output = [u'<select multiple="multiple"%s>' % flatatt(final_attrs)]
         str_values = set([force_unicode(v) for v in value]) # Normalize to strings.
         for option_value, option_label in chain(self.choices, choices):
+            disabled_html = (option_value in self.disabled) and ' disabled="disabled"' or ''
             option_value = force_unicode(option_value)
             selected_html = (option_value in str_values) and ' selected="selected"' or ''
-            output.append(u'<option value="%s"%s>%s</option>' % (escape(option_value), selected_html, escape(force_unicode(option_label))))
+            output.append(u'<option value="%s"%s%s>%s</option>' % (
+                escape(option_value), selected_html, disabled_html, escape(force_unicode(option_label))))
         output.append(u'</select>')
         return u'\n'.join(output)
 
