Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.836
diff -u -r1.836 system.module
--- modules/system/system.module	3 Nov 2009 06:47:23 -0000	1.836
+++ modules/system/system.module	3 Nov 2009 21:43:52 -0000
@@ -2545,7 +2545,10 @@
   $form['description'] = array('#markup' => $description);
   $form[$name] = array('#type' => 'hidden', '#value' => 1);
 
-  $form['actions'] = array('#prefix' => '<div class="container-inline">', '#suffix' => '</div>');
+  $form['actions'] = array(
+    '#type' => 'container',
+    '#attributes' => array('class' => array('container-inline')),
+  );
   $form['actions']['submit'] = array('#type' => 'submit', '#value' => $yes ? $yes : t('Confirm'));
   $form['actions']['cancel'] = array('#markup' => $cancel);
   // By default, render the form using theme_confirm_form().
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.1161
diff -u -r1.1161 node.module
--- modules/node/node.module	3 Nov 2009 06:47:22 -0000	1.1161
+++ modules/node/node.module	3 Nov 2009 21:43:51 -0000
@@ -2136,9 +2136,9 @@
     }
 
     $build['default_message'] = array(
-      '#markup' => $default_message,
-      '#prefix' => '<div id="first-time">',
-      '#suffix' => '</div>',
+      '#type' => 'container',
+      '#id' => 'first-time',
+      '#children' => $default_message,
     );
   }
   return $build;
Index: modules/search/search.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/search/search.module,v
retrieving revision 1.323
diff -u -r1.323 search.module
--- modules/search/search.module	1 Nov 2009 21:46:16 -0000	1.323
+++ modules/search/search.module	3 Nov 2009 21:43:51 -0000
@@ -870,7 +870,10 @@
   $form['#attributes']['class'][] = 'search-form';
   $form['module'] = array('#type' => 'value', '#value' => $type);
   $form['basic'] = array('#type' => 'item', '#title' => $prompt, '#id' => 'edit-keys');
-  $form['basic']['inline'] = array('#prefix' => '<div class="container-inline">', '#suffix' => '</div>');
+  $form['basic']['inline'] = array(
+    '#type' => 'container',
+    '#attributes' => array('class' => array('container-inline')),
+  );
   $form['basic']['inline']['keys'] = array(
     '#type' => 'textfield',
     '#title' => '',
Index: modules/trigger/trigger.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/trigger/trigger.admin.inc,v
retrieving revision 1.20
diff -u -r1.20 trigger.admin.inc
--- modules/trigger/trigger.admin.inc	2 Nov 2009 04:36:25 -0000	1.20
+++ modules/trigger/trigger.admin.inc	3 Nov 2009 21:43:52 -0000
@@ -161,8 +161,8 @@
   }
 
   $form[$hook]['parent'] = array(
-    '#prefix' => "<div class='container-inline'>",
-    '#suffix' => '</div>',
+    '#type' => 'container',
+    '#attributes' => array('class' => array('container-inline')),
   );
   // List possible actions that may be assigned.
   if (count($options) != 0) {
Index: modules/filter/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v
retrieving revision 1.300
diff -u -r1.300 filter.module
--- modules/filter/filter.module	23 Oct 2009 22:24:14 -0000	1.300
+++ modules/filter/filter.module	3 Nov 2009 21:43:51 -0000
@@ -652,8 +652,9 @@
     '#attributes' => array('class' => array('filter-wrapper')),
   );
   $form['format_guidelines'] = array(
-    '#prefix' => '<div id="' . $element_id . '-guidelines" class="filter-guidelines">',
-    '#suffix' => '</div>',
+    '#type' => 'container',
+    '#id' => $element_id . '-guidelines',
+    '#attributes' => array('class' => array('filter-guidelines')),
     '#weight' => 2,
   );
   foreach ($formats as $format) {
Index: modules/path/path.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/path/path.admin.inc,v
retrieving revision 1.36
diff -u -r1.36 path.admin.inc
--- modules/path/path.admin.inc	24 Oct 2009 05:13:44 -0000	1.36
+++ modules/path/path.admin.inc	3 Nov 2009 21:43:51 -0000
@@ -224,7 +224,10 @@
   $form['basic'] = array('#type' => 'fieldset',
     '#title' => t('Filter aliases')
   );
-  $form['basic']['inline'] = array('#prefix' => '<div class="container-inline">', '#suffix' => '</div>');
+  $form['basic']['inline'] = array(
+    '#type' => 'container',
+    '#attributes' => array('class' => array('container-inline')),
+  );
   $form['basic']['inline']['filter'] = array(
     '#type' => 'textfield',
     '#title' => '',
Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.391
diff -u -r1.391 form.inc
--- includes/form.inc	3 Nov 2009 05:27:18 -0000	1.391
+++ includes/form.inc	3 Nov 2009 21:43:51 -0000
@@ -2193,7 +2193,10 @@
  *   The processed element.
  */
 function form_process_container($element, &$form_state) {
-  $element['#id'] = drupal_html_id(implode('-', $element['#parents']) . '-wrapper');
+  if (!isset($element['#id'])) {
+    $element['#id'] = drupal_html_id(implode('-', $element['#parents']) . '-wrapper');
+  }
+  $elements['#attributes']['class'][] = 'form-wrapper';
   return $element;
 }
 
@@ -2201,9 +2204,8 @@
  * Adds a container for grouped items
  *
  * @param $element
- *   An associative array containing the properties and children of the
- *   group.
- *   Properties used: #children.
+ *   An associative array containing the properties and children of the group.
+ *   Properties used: #children, #id, #attributes.
  * @return
  *   A themed HTML string representing the form element.
  *
@@ -2211,7 +2213,12 @@
  */
 function theme_container($variables) {
   $element = $variables['element'];
-  return '<div class="form-wrapper" id="' . $element['#id'] . '">' . $element['#children'] . '</div>';
+  // Inject the element's ID into the attributes, if provided.
+  $attributes = isset($element['#attributes']) ? $element['#attributes'] : array();
+  if (isset($element['#id'])) {
+    $attributes['id'] = $element['#id'];
+  }
+  return '<div' . drupal_attributes($attributes) . '>' . $element['#children'] . '</div>';
 }
 
 /**
