Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.368
diff -u -r1.368 form.inc
--- includes/form.inc	29 Aug 2009 16:30:14 -0000	1.368
+++ includes/form.inc	30 Aug 2009 02:47:43 -0000
@@ -1114,7 +1114,7 @@
     array_unshift($element['#parents'], $name);
   }
 
-  if (!empty($element['#disabled'])) {
+  if (!empty($element['#disabled']) && !is_array($element['#disabled'])) {
     $element['#attributes']['disabled'] = 'disabled';
   }
 
@@ -1870,6 +1870,11 @@
           '#ajax' => isset($element['#ajax']) ? $element['#ajax'] : NULL,
         );
       }
+      if (isset($element['#disabled'])) {
+        if (in_array($key, (array)$element['#disabled'])) {
+          $element[$key]['#attributes']['disabled'] = TRUE;
+        }
+      }
     }
   }
   return $element;
@@ -2058,6 +2063,11 @@
           '#ajax' => isset($element['#ajax']) ? $element['#ajax'] : NULL,
         );
       }
+      if (isset($element['#disabled'])) {
+        if (in_array($key, (array)$element['#disabled'])) {
+          $element[$key]['#attributes']['disabled'] = TRUE;
+        }
+      }
     }
   }
   return $element;
