Index: update.php
===================================================================
RCS file: /cvs/drupal/drupal/update.php,v
retrieving revision 1.316
diff -u -p -r1.316 update.php
--- update.php	3 Feb 2010 18:16:22 -0000	1.316
+++ update.php	17 Feb 2010 00:46:12 -0000
@@ -128,7 +128,8 @@ function update_script_selection_form($f
       '#type' => 'hidden',
       '#default_value' => FALSE,
     );
-    $form['submit'] = array(
+    $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+    $form['actions']['submit'] = array(
       '#type' => 'submit',
       '#value' => 'Apply pending updates',
     );
Index: modules/aggregator/aggregator.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.admin.inc,v
retrieving revision 1.49
diff -u -p -r1.49 aggregator.admin.inc
--- modules/aggregator/aggregator.admin.inc	9 Jan 2010 23:03:21 -0000	1.49
+++ modules/aggregator/aggregator.admin.inc	17 Feb 2010 00:44:41 -0000
@@ -101,13 +101,14 @@ function aggregator_form_feed($form, &$f
       '#description' => t('New feed items are automatically filed in the checked categories.'),
     );
   }
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Save'),
   );
 
   if (!empty($feed->fid)) {
-    $form['delete'] = array(
+    $form['actions']['delete'] = array(
       '#type' => 'submit',
       '#value' => t('Delete'),
     );
@@ -262,7 +263,8 @@ function aggregator_form_opml($form, &$f
       '#description' => t('New feed items are automatically filed in the checked categories.'),
     );
   }
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Import')
   );
@@ -502,10 +504,11 @@ function aggregator_form_category($form,
     '#title' => t('Description'),
     '#default_value' => $edit['description'],
   );
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save'));
 
   if ($edit['cid']) {
-    $form['delete'] = array('#type' => 'submit', '#value' => t('Delete'));
+    $form['actions']['delete'] = array('#type' => 'submit', '#value' => t('Delete'));
     $form['cid'] = array('#type' => 'hidden', '#value' => $edit['cid']);
   }
 
Index: modules/book/book.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/book/book.admin.inc,v
retrieving revision 1.31
diff -u -p -r1.31 book.admin.inc
--- modules/book/book.admin.inc	9 Jan 2010 21:54:00 -0000	1.31
+++ modules/book/book.admin.inc	17 Feb 2010 00:34:04 -0000
@@ -75,7 +75,9 @@ function book_admin_edit($form, $form_st
   drupal_set_title($node->title);
   $form['#node'] = $node;
   _book_admin_table($node, $form);
-  $form['save'] = array(
+
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Save book pages'),
   );
Index: modules/comment/comment.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.admin.inc,v
retrieving revision 1.42
diff -u -p -r1.42 comment.admin.inc
--- modules/comment/comment.admin.inc	17 Feb 2010 05:42:42 -0000	1.42
+++ modules/comment/comment.admin.inc	17 Feb 2010 12:12:50 -0000
@@ -51,7 +51,8 @@ function comment_admin_overview($form, &
     '#options' => $options,
     '#default_value' => 'publish',
   );
-  $form['options']['submit'] = array(
+  $form['options']['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['options']['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Update'),
   );
Index: modules/contact/contact.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/contact/contact.pages.inc,v
retrieving revision 1.41
diff -u -p -r1.41 contact.pages.inc
--- modules/contact/contact.pages.inc	17 Feb 2010 08:48:18 -0000	1.41
+++ modules/contact/contact.pages.inc	17 Feb 2010 12:13:12 -0000
@@ -235,10 +235,7 @@ function contact_personal_form($form, &$
     '#title' => t('Send yourself a copy.'),
     '#access' => $user->uid,
   );
-  $form['actions'] = array(
-    '#type' => 'container',
-    '#attributes' => array('class' => array('form-actions')),
-  );
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
   $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Send message'),
Index: modules/field_ui/field_ui.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field_ui/field_ui.admin.inc,v
retrieving revision 1.43
diff -u -p -r1.43 field_ui.admin.inc
--- modules/field_ui/field_ui.admin.inc	15 Feb 2010 22:18:35 -0000	1.43
+++ modules/field_ui/field_ui.admin.inc	17 Feb 2010 00:17:05 -0000
@@ -274,7 +274,8 @@ function field_ui_field_overview_form($f
     $form['#field_rows'][] = $name;
   }
 
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save'));
   return $form;
 }
 
@@ -624,7 +625,8 @@ function field_ui_display_overview_form(
     }
   }
 
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save'));
   return $form;
 }
 
@@ -925,7 +927,8 @@ function field_ui_widget_type_form($form
   );
 
   $form['#instance'] = $instance;
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Continue'));
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Continue'));
 
   $form['#validate'] = array();
   $form['#submit'] = array('field_ui_widget_type_form_submit');
@@ -1161,7 +1164,8 @@ function field_ui_field_edit_form($form,
     $form['field']['settings'] = $additions;
   }
 
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Save settings'));
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save settings'));
   return $form;
 }
 
Index: modules/image/image.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/image/image.admin.inc,v
retrieving revision 1.17
diff -u -p -r1.17 image.admin.inc
--- modules/image/image.admin.inc	3 Jan 2010 21:01:04 -0000	1.17
+++ modules/image/image.admin.inc	17 Feb 2010 00:19:23 -0000
@@ -136,14 +136,15 @@ function image_style_form($form, &$form_
   );
 
   // Show the Override or Submit button for this style.
-  $form['override'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['override'] = array(
     '#type' => 'submit',
     '#value' => t('Override defaults'),
     '#validate' => array(),
     '#submit' => array('image_style_form_override_submit'),
     '#access' => !$editable,
   );
-  $form['submit'] = array(
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Update style'),
     '#access' => $editable,
@@ -238,7 +239,8 @@ function image_style_add_form($form, &$f
     '#required' => TRUE,
   );
 
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Create new style'),
   );
Index: modules/locale/locale.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/locale/locale.admin.inc,v
retrieving revision 1.5
diff -u -p -r1.5 locale.admin.inc
--- modules/locale/locale.admin.inc	12 Feb 2010 16:15:17 -0000	1.5
+++ modules/locale/locale.admin.inc	17 Feb 2010 00:13:04 -0000
@@ -1050,7 +1050,8 @@ function locale_translate_export_po_form
     '#default_value' => 'default',
     '#options' => module_invoke_all('locale', 'groups'),
   );
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Export'));
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Export'));
   return $form;
 }
 
@@ -1068,7 +1069,8 @@ function locale_translate_export_pot_for
     '#default_value' => 'default',
     '#options' => module_invoke_all('locale', 'groups'),
   );
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Export'));
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Export'));
   // Reuse PO export submission callback.
   $form['#submit'][] = 'locale_translate_export_po_form_submit';
   return $form;
@@ -1157,7 +1159,8 @@ function locale_translate_edit_form($for
     $form['translations'][$translation->language]['#default_value'] = $translation->translation;
   }
 
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Save translations'));
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save translations'));
   return $form;
 }
 
Index: modules/menu/menu.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/menu/menu.admin.inc,v
retrieving revision 1.75
diff -u -p -r1.75 menu.admin.inc
--- modules/menu/menu.admin.inc	15 Feb 2010 15:29:14 -0000	1.75
+++ modules/menu/menu.admin.inc	17 Feb 2010 00:49:55 -0000
@@ -257,6 +257,12 @@ function menu_edit_item($form, &$form_st
   $form['customized'] = array('#type' => 'value', '#value' => 1);
   $form['original_item'] = array('#type' => 'value', '#value' => $item);
 
+  $form['actions'] = array(
+    '#type' => 'container',
+    '#attributes' => array('class' => array('form-actions')),
+    '#weight' => 100,
+  );
+
   $path = $item['link_path'];
   if (isset($item['options']['query'])) {
     $path .= '?' . drupal_http_build_query($item['options']['query']);
@@ -272,7 +278,7 @@ function menu_edit_item($form, &$form_st
       '#description' => t('The path for this menu link. This can be an internal Drupal path such as %add-node or an external URL such as %drupal. Enter %front to link to the front page.', array('%front' => '<front>', '%add-node' => 'node/add', '%drupal' => 'http://drupal.org')),
       '#required' => TRUE,
     );
-    $form['delete'] = array(
+    $form['actions']['delete'] = array(
       '#type' => 'submit',
       '#value' => t('Delete'),
       '#access' => $item['mlid'],
@@ -328,7 +334,7 @@ function menu_edit_item($form, &$form_st
     '#default_value' => $item['weight'],
     '#description' => t('Optional. In the menu, the heavier links will sink and the lighter links will be positioned nearer the top.'),
   );
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save'));
 
   return $form;
 }
@@ -456,12 +462,13 @@ function menu_edit_menu($form, &$form_st
     '#title' => t('Description'),
     '#default_value' => $menu['description'],
   );
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Save'),
   );
   // Only custom menus may be deleted.
-  $form['delete'] = array(
+  $form['actions']['delete'] = array(
     '#type' => 'submit',
     '#value' => t('Delete'),
     '#access' => $type == 'edit' && !isset($system_menus[$menu['menu_name']]),
Index: modules/node/node.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.admin.inc,v
retrieving revision 1.90
diff -u -p -r1.90 node.admin.inc
--- modules/node/node.admin.inc	15 Feb 2010 16:36:48 -0000	1.90
+++ modules/node/node.admin.inc	17 Feb 2010 00:26:30 -0000
@@ -401,7 +401,8 @@ function node_admin_nodes() {
     '#options' => $options,
     '#default_value' => 'approve',
   );
-  $form['options']['submit'] = array(
+  $form['options']['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['options']['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Update'),
     '#validate' => array('node_admin_nodes_validate'),
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.1233
diff -u -p -r1.1233 node.module
--- modules/node/node.module	17 Feb 2010 03:37:12 -0000	1.1233
+++ modules/node/node.module	17 Feb 2010 12:12:51 -0000
@@ -2521,11 +2521,10 @@ function node_form_search_form_alter(&$f
       '#suffix' => '</div>',
       '#options' => $types,
     );
-    $form['advanced']['submit'] = array(
+    $form['advanced']['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+    $form['advanced']['actions']['submit'] = array(
       '#type' => 'submit',
       '#value' => t('Advanced search'),
-      '#prefix' => '<div class="action">',
-      '#suffix' => '</div>',
     );
 
     // Languages:
Index: modules/openid/openid.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/openid/openid.inc,v
retrieving revision 1.23
diff -u -p -r1.23 openid.inc
--- modules/openid/openid.inc	31 Jan 2010 18:39:46 -0000	1.23
+++ modules/openid/openid.inc	17 Feb 2010 00:25:51 -0000
@@ -88,7 +88,8 @@ function openid_redirect_form($form, &$f
       '#value' => $value,
     );
   }
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#prefix' => '<noscript>',
     '#suffix' => '</noscript>',
Index: modules/path/path.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/path/path.admin.inc,v
retrieving revision 1.41
diff -u -p -r1.41 path.admin.inc
--- modules/path/path.admin.inc	21 Jan 2010 04:20:08 -0000	1.41
+++ modules/path/path.admin.inc	17 Feb 2010 00:22:10 -0000
@@ -122,10 +122,7 @@ function path_admin_form($form, &$form_s
     '#value' => $path['language']
   );
 
-  $form['actions'] = array(
-    '#type' => 'container',
-    '#attributes' => array('class' => array('form-actions')),
-  );
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
   $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Save'),
@@ -230,10 +227,11 @@ function path_admin_delete_confirm_submi
  */
 function path_admin_filter_form($form, &$form_state, $keys = '') {
   $form['#attributes'] = array('class' => array('search-form'));
-  $form['basic'] = array('#type' => 'fieldset',
+  $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' => '',
@@ -241,13 +239,14 @@ function path_admin_filter_form($form, &
     '#maxlength' => 128,
     '#size' => 25,
   );
-  $form['basic']['inline']['submit'] = array(
+  $form['basic']['inline']['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['basic']['inline']['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Filter'),
     '#submit' => array('path_admin_filter_form_submit_filter'),
     );
   if ($keys) {
-    $form['basic']['inline']['reset'] = array(
+    $form['basic']['inline']['actions']['reset'] = array(
       '#type' => 'submit',
       '#value' => t('Reset'),
       '#submit' => array('path_admin_filter_form_submit_reset'),
Index: modules/poll/poll.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/poll/poll.module,v
retrieving revision 1.338
diff -u -p -r1.338 poll.module
--- modules/poll/poll.module	2 Feb 2010 07:39:21 -0000	1.338
+++ modules/poll/poll.module	17 Feb 2010 00:45:27 -0000
@@ -882,7 +882,8 @@ function poll_cancel_form($form, &$form_
   // Store the nid so we can get to it in submit functions.
   $form['#nid'] = $nid;
 
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Cancel your vote'),
     '#submit' => array('poll_cancel')
Index: modules/profile/profile.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/profile/profile.admin.inc,v
retrieving revision 1.38
diff -u -p -r1.38 profile.admin.inc
--- modules/profile/profile.admin.inc	13 Jan 2010 06:44:31 -0000	1.38
+++ modules/profile/profile.admin.inc	17 Feb 2010 00:25:19 -0000
@@ -40,7 +40,8 @@ function profile_admin_overview($form) {
 
   // Display the submit button only when there's more than one field
   if (count($form) > 1) {
-    $form['submit'] = array('#type' => 'submit', '#value' => t('Save configuration'));
+    $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+    $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save configuration'));
   }
   else {
     // Disable combo boxes when there isn't a submit button
Index: modules/search/search-rtl.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/search/search-rtl.css,v
retrieving revision 1.3
diff -u -p -r1.3 search-rtl.css
--- modules/search/search-rtl.css	27 Nov 2007 12:09:26 -0000	1.3
+++ modules/search/search-rtl.css	17 Feb 2010 00:28:07 -0000
@@ -5,7 +5,7 @@
   margin-right: 0;
   margin-left: 2em;
 }
-.search-advanced .action {
+.search-advanced .form-actions {
   float: right;
   clear: right;
 }
Index: modules/search/search.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/search/search.css,v
retrieving revision 1.3
diff -u -p -r1.3 search.css
--- modules/search/search.css	31 Oct 2007 18:06:38 -0000	1.3
+++ modules/search/search.css	17 Feb 2010 00:27:59 -0000
@@ -23,7 +23,7 @@
   float: left; /* LTR */
   margin-right: 2em; /* LTR */
 }
-.search-advanced .action {
+.search-advanced .form-actions {
   float: left; /* LTR */
   clear: left; /* LTR */
 }
Index: modules/search/search.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/search/search.module,v
retrieving revision 1.337
diff -u -p -r1.337 search.module
--- modules/search/search.module	13 Feb 2010 21:41:58 -0000	1.337
+++ modules/search/search.module	17 Feb 2010 00:24:08 -0000
@@ -902,7 +902,7 @@ function search_form($form, &$form_state
   $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' => '',
@@ -913,7 +913,8 @@ function search_form($form, &$form_state
   // processed_keys is used to coordinate keyword passing between other forms
   // that hook into the basic search form.
   $form['basic']['inline']['processed_keys'] = array('#type' => 'value', '#value' => array());
-  $form['basic']['inline']['submit'] = array('#type' => 'submit', '#value' => t('Search'));
+  $form['basic']['inline']['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['basic']['inline']['actions']['submit'] = array('#type' => 'submit', '#value' => t('Search'));
 
   return $form;
 }
@@ -933,7 +934,8 @@ function search_box($form, &$form_state,
     '#default_value' => '',
     '#attributes' => array('title' => t('Enter the terms you wish to search for.')),
   );
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Search'));
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Search'));
   $form['#submit'][] = 'search_box_form_submit';
 
   return $form;
Index: modules/shortcut/shortcut.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/shortcut/shortcut.admin.inc,v
retrieving revision 1.7
diff -u -p -r1.7 shortcut.admin.inc
--- modules/shortcut/shortcut.admin.inc	17 Feb 2010 03:35:15 -0000	1.7
+++ modules/shortcut/shortcut.admin.inc	17 Feb 2010 12:12:51 -0000
@@ -376,7 +376,8 @@ function _shortcut_link_form_elements($s
 
   $form['#validate'][] = 'shortcut_link_edit_validate';
 
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Save'),
   );
Index: modules/system/system.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v
retrieving revision 1.259
diff -u -p -r1.259 system.admin.inc
--- modules/system/system.admin.inc	15 Feb 2010 15:07:57 -0000	1.259
+++ modules/system/system.admin.inc	17 Feb 2010 00:16:14 -0000
@@ -1437,7 +1437,8 @@ function system_ip_blocking_form($form, 
     '#default_value' => $default_ip,
     '#description' => t('Enter a valid IP address.'),
   );
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Save'),
   );
@@ -2072,7 +2073,8 @@ function system_add_date_format_type_for
     '#required' => TRUE,
   );
 
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Add date type'),
   );
Index: modules/taxonomy/taxonomy.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.admin.inc,v
retrieving revision 1.94
diff -u -p -r1.94 taxonomy.admin.inc
--- modules/taxonomy/taxonomy.admin.inc	17 Feb 2010 05:42:42 -0000	1.94
+++ modules/taxonomy/taxonomy.admin.inc	17 Feb 2010 12:14:38 -0000
@@ -28,7 +28,8 @@ function taxonomy_overview_vocabularies(
   // Only make this form include a submit button and weight if more than one
   // vocabulary exists.
   if (count($vocabularies) > 1) {
-    $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
+    $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+    $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save'));
   }
   elseif (isset($vocabulary)) {
     unset($form[$vocabulary->vid]['weight']);
@@ -80,7 +81,7 @@ function theme_taxonomy_overview_vocabul
   }
 
   $header = array(t('Vocabulary name'));
-  if (isset($form['submit'])) {
+  if (isset($form['actions'])) {
     $header[] = t('Weight');
     drupal_add_tabledrag('taxonomy', 'order', 'sibling', 'vocabulary-weight');
   }
@@ -154,9 +155,10 @@ function taxonomy_form_vocabulary($form,
     '#value' => '0',
   );
 
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save'));
   if (isset($edit['vid'])) {
-    $form['delete'] = array('#type' => 'submit', '#value' => t('Delete'));
+    $form['actions']['delete'] = array('#type' => 'submit', '#value' => t('Delete'));
     $form['vid'] = array('#type' => 'value', '#value' => $edit['vid']);
     $form['module'] = array('#type' => 'value', '#value' => $edit['module']);
   }
@@ -381,11 +383,16 @@ function taxonomy_overview_terms($form, 
   $form['#empty_text'] = t('No terms available. <a href="@link">Add term</a>.', array('@link' => url('admin/structure/taxonomy/' . $vocabulary->vid . '/add')));
 
   if ($vocabulary->hierarchy < 2 && count($tree) > 1) {
-    $form['submit'] = array(
+    $form['actions'] = array(
+      '#type' => 'container',
+      '#attributes' => array('class' => array('form-actions')),
+      '#tree' => FALSE,
+    );
+    $form['actions']['submit'] = array(
       '#type' => 'submit',
       '#value' => t('Save')
     );
-    $form['reset_alphabetical'] = array(
+    $form['actions']['reset_alphabetical'] = array(
       '#type' => 'submit',
       '#value' => t('Reset to alphabetical')
     );
Index: modules/trigger/trigger.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/trigger/trigger.admin.inc,v
retrieving revision 1.21
diff -u -p -r1.21 trigger.admin.inc
--- modules/trigger/trigger.admin.inc	6 Nov 2009 03:59:06 -0000	1.21
+++ modules/trigger/trigger.admin.inc	17 Feb 2010 00:29:52 -0000
@@ -159,10 +159,7 @@ function trigger_assign_form($form, $for
     );
   }
 
-  $form[$hook]['parent'] = array(
-    '#prefix' => "<div class='container-inline'>",
-    '#suffix' => '</div>',
-  );
+  $form[$hook]['parent'] = array('#type' => 'container', '#attributes' => array('class' => array('container-inline')));
   // List possible actions that may be assigned.
   if (count($options) != 0) {
     array_unshift($options, t('Choose an action'));
@@ -170,9 +167,10 @@ function trigger_assign_form($form, $for
       '#type' => 'select',
       '#options' => $options,
     );
-    $form[$hook]['parent']['submit'] = array(
+    $form[$hook]['parent']['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+    $form[$hook]['parent']['actions']['submit'] = array(
       '#type' => 'submit',
-      '#value' => t('Assign')
+      '#value' => t('Assign'),
     );
   }
   else {
Index: modules/update/update.manager.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/update/update.manager.inc,v
retrieving revision 1.17
diff -u -p -r1.17 update.manager.inc
--- modules/update/update.manager.inc	1 Feb 2010 07:17:59 -0000	1.17
+++ modules/update/update.manager.inc	17 Feb 2010 00:31:51 -0000
@@ -233,7 +233,8 @@ function update_manager_update_form($for
   // If either table has been printed yet, we need a submit button and to
   // validate the checkboxes.
   if (!empty($projects['enabled']) || !empty($projects['disabled'])) {
-    $form['submit'] = array(
+    $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+    $form['actions']['submit'] = array(
       '#type' => 'submit',
       '#value' => t('Download these updates'),
       '#weight' => 10,
@@ -367,10 +368,14 @@ function update_manager_update_ready_for
     '#default_value' => TRUE,
   );
 
-  $form['submit'] = array(
+  $form['actions'] = array(
+    '#type' => 'container',
+    '#attributes' => array('class' => array('form-actions')),
+    '#weight' => 100,
+  );
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Continue'),
-    '#weight' => 100,
   );
 
   return $form;
@@ -493,7 +498,8 @@ function update_manager_install_form($fo
     '#description' => t('For example: %filename from your local computer', array('%filename' => 'name.tar.gz')),
   );
 
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Install'),
   );
Index: modules/user/user.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.admin.inc,v
retrieving revision 1.99
diff -u -p -r1.99 user.admin.inc
--- modules/user/user.admin.inc	7 Feb 2010 17:29:09 -0000	1.99
+++ modules/user/user.admin.inc	17 Feb 2010 00:39:35 -0000
@@ -181,7 +181,8 @@ function user_admin_account() {
     '#default_value' => 'unblock',
   );
   $options = array();
-  $form['options']['submit'] = array(
+  $form['options']['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['options']['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Update'),
   );
@@ -809,7 +810,8 @@ function user_admin_role() {
       '#size' => 32,
       '#maxlength' => 64,
     );
-    $form['submit'] = array(
+    $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+    $form['actions']['submit'] = array(
       '#type' => 'submit',
       '#value' => t('Add role'),
     );
@@ -874,7 +876,7 @@ function theme_user_admin_new_role($vari
       $rows[] = array($name, l(t('edit role'), 'admin/people/permissions/roles/edit/' . $rid), $edit_permissions);
     }
   }
-  $rows[] = array(array('data' => drupal_render($form['name']) . drupal_render($form['submit']), 'colspan' => 3, 'class' => 'edit-name'));
+  $rows[] = array(array('data' => drupal_render($form['name']) . drupal_render($form['actions']), 'colspan' => 3, 'class' => 'edit-name'));
 
   $output = drupal_render_children($form);
   $output .= theme('table', array('header' => $header, 'rows' => $rows));
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.1126
diff -u -p -r1.1126 user.module
--- modules/user/user.module	17 Feb 2010 08:54:51 -0000	1.1126
+++ modules/user/user.module	17 Feb 2010 12:16:46 -0000
@@ -1184,19 +1184,23 @@ function user_login_block($form) {
   $form['#id'] = 'user-login-form';
   $form['#validate'] = user_login_default_validators();
   $form['#submit'][] = 'user_login_submit';
-  $form['name'] = array('#type' => 'textfield',
+  $form['name'] = array(
+    '#type' => 'textfield',
     '#title' => t('Username'),
     '#maxlength' => USERNAME_MAX_LENGTH,
     '#size' => 15,
     '#required' => TRUE,
   );
-  $form['pass'] = array('#type' => 'password',
+  $form['pass'] = array(
+    '#type' => 'password',
     '#title' => t('Password'),
     '#maxlength' => 60,
     '#size' => 15,
     '#required' => TRUE,
   );
-  $form['submit'] = array('#type' => 'submit',
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
+    '#type' => 'submit',
     '#value' => t('Log in'),
   );
   $items = array();
@@ -1839,21 +1843,28 @@ function user_login($form, &$form_state)
   }
 
   // Display login form:
-  $form['name'] = array('#type' => 'textfield',
+  $form['name'] = array(
+    '#type' => 'textfield',
     '#title' => t('Username'),
+    '#description' => t('Enter your @s username.', array('@s' => variable_get('site_name', 'Drupal'))),
     '#size' => 60,
     '#maxlength' => USERNAME_MAX_LENGTH,
     '#required' => TRUE,
   );
 
-  $form['name']['#description'] = t('Enter your @s username.', array('@s' => variable_get('site_name', 'Drupal')));
-  $form['pass'] = array('#type' => 'password',
+  $form['pass'] = array(
+    '#type' => 'password',
     '#title' => t('Password'),
     '#description' => t('Enter the password that accompanies your username.'),
     '#required' => TRUE,
   );
   $form['#validate'] = user_login_default_validators();
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Log in'), '#weight' => 2);
+  $form['actions'] = array(
+    '#type' => 'container',
+    '#attributes' => array('class' => array('form-actions')),
+    '#weight' => 100,
+  );
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Log in'));
 
   return $form;
 }
@@ -3299,10 +3310,14 @@ function user_register_form($form, &$for
     $form_state['redirect'] = $_GET['q'];
   }
 
-  $form['submit'] = array(
+  $form['actions'] = array(
+    '#type' => 'container',
+    '#attributes' => array('class' => array('form-actions')),
+    '#weight' => 100,
+  );
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Create new account'),
-    '#weight' => 30,
   );
 
   // Add the final user registration form submit handler.
@@ -3319,7 +3334,7 @@ function user_register_form($form, &$for
  */
 function user_register_form_pre_render($form) {
   $visible_children = element_get_visible_children($form);
-  if (!count(array_diff($visible_children, array('account', 'submit')))) {
+  if (!count(array_diff($visible_children, array('account', 'actions')))) {
     $form['account']['#theme_wrappers'] = array();
   }
   return $form;
Index: modules/user/user.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.pages.inc,v
retrieving revision 1.67
diff -u -p -r1.67 user.pages.inc
--- modules/user/user.pages.inc	17 Feb 2010 05:42:42 -0000	1.67
+++ modules/user/user.pages.inc	17 Feb 2010 12:12:52 -0000
@@ -48,7 +48,8 @@ function user_pass() {
       '#suffix' => '</p>',
     );
   }
-  $form['submit'] = array('#type' => 'submit', '#value' => t('E-mail new password'));
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('E-mail new password'));
 
   return $form;
 }
@@ -140,7 +141,8 @@ function user_pass_reset($form, &$form_s
         else {
           $form['message'] = array('#markup' => t('<p>This is a one-time login for %user_name and will expire on %expiration_date.</p><p>Click on this button to log in to the site and change your password.</p>', array('%user_name' => $account->name, '%expiration_date' => format_date($timestamp + $timeout))));
           $form['help'] = array('#markup' => '<p>' . t('This login can be used only once.') . '</p>');
-          $form['submit'] = array('#type' => 'submit', '#value' => t('Log in'));
+          $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+          $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Log in'));
           $form['#action'] = url("user/reset/$uid/$timestamp/$hashed_pass/login");
           return $form;
         }
@@ -251,13 +253,14 @@ function user_profile_form($form, &$form
   // Attach field widgets.
   field_attach_form('user', $account, $form, $form_state);
 
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'container', '#attributes' => array('class' => array('form-actions')));
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Save'),
     '#weight' => 30,
   );
   if ($category == 'account') {
-    $form['cancel'] = array(
+    $form['actions']['cancel'] = array(
       '#type' => 'submit',
       '#value' => t('Cancel account'),
       '#weight' => 31,
