diff --git a/includes/form.inc b/includes/form.inc
index decca00..a92aef1 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -1711,6 +1711,8 @@ function form_builder($form_id, &$element, &$form_state) {
 
   // Special handling if we're on the top level form element.
   if (isset($element['#type']) && $element['#type'] == 'form') {
+  $element['#attributes']['class'][] = str_replace('_', '-', $form_id);
+
     if (!empty($element['#https']) && variable_get('https', FALSE) &&
         !url_is_external($element['#action'])) {
       global $base_root;
diff --git a/modules/node/node.pages.inc b/modules/node/node.pages.inc
index d92e8b7..8ea2f02 100644
--- a/modules/node/node.pages.inc
+++ b/modules/node/node.pages.inc
@@ -111,9 +111,6 @@ function node_form($form, &$form_state, $node) {
   $form['#node_edit_form'] = TRUE;
 
   $form['#attributes']['class'][] = 'node-form';
-  if (!empty($node->type)) {
-    $form['#attributes']['class'][] = 'node-' . $node->type . '-form';
-  }
 
   // Basic node information.
   // These elements are just values so they are not even sent to the client.
diff --git a/modules/search/search.module b/modules/search/search.module
index 518272a..f75de4d 100644
--- a/modules/search/search.module
+++ b/modules/search/search.module
@@ -981,7 +981,6 @@ function search_form($form, &$form_state, $action = '', $keys = '', $module = NU
   $form['#action'] = url($action);
   // Record the $action for later use in redirecting.
   $form_state['action'] = $action;
-  $form['#attributes']['class'][] = 'search-form';
   $form['module'] = array('#type' => 'value', '#value' => $module);
   $form['basic'] = array('#type' => 'container', '#attributes' => array('class' => array('container-inline')));
   $form['basic']['keys'] = array(
