Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.161
diff -U3 -r1.161 form.inc
--- includes/form.inc	26 Nov 2006 22:35:20 -0000	1.161
+++ includes/form.inc	4 Dec 2006 22:20:24 -0000
@@ -318,7 +318,7 @@
     $form['form_id'] = array('#type' => 'hidden', '#value' => $form_id, '#id' => str_replace('_', '-', "edit-$form_id"));
   }
   if (!isset($form['#id'])) {
-    $form['#id'] = $form_id;
+    $form['#id'] = form_clean_id($form_id);
   }

   $form += _element_info('form');
@@ -634,7 +634,7 @@
       array_unshift($form['#parents'], $name);
     }
     if (!isset($form['#id'])) {
-      $form['#id'] = 'edit-'. implode('-', $form['#parents']);
+      $form['#id'] = form_clean_id('edit-'. implode('-', $form['#parents']));
     }

     if (isset($form['#disabled']) && $form['#disabled']) {
@@ -1408,7 +1408,7 @@
  */
 function theme_file($element) {
   _form_set_class($element, array('form-file'));
-  return theme('form_element', $element, '<input type="file" name="'. $element['#name'] .'"'. ($element['#attributes'] ? ' '. drupal_attributes($element['#attributes']) : '') .' id="'. form_clean_id($element['#id']) .'" size="'. $element['#size'] ."\" />\n");
+  return theme('form_element', $element, '<input type="file" name="'. $element['#name'] .'"'. ($element['#attributes'] ? ' '. drupal_attributes($element['#attributes']) : '') .' id="'. $element['#id'] .'" size="'. $element['#size'] ."\" />\n");
 }

 /**
@@ -1429,7 +1429,7 @@
   if (!empty($element['#title'])) {
     $title = $element['#title'];
     if (!empty($element['#id'])) {
-      $output .= ' <label for="'. form_clean_id($element['#id']) .'">'. t('!title: !required', array('!title' => $title, '!required' => $required)) ."</label>\n";
+      $output .= ' <label for="'. $element['#id'] .'">'. t('!title: !required', array('!title' => $title, '!required' => $required)) ."</label>\n";
     }
     else {
       $output .= ' <label>'. t('!title: !required', array('!title' => $title, '!required' => $required)) ."</label>\n";
@@ -1479,7 +1479,7 @@
  *   The cleaned ID
  */
 function form_clean_id($id = NULL) {
-  $id = str_replace('][', '-', $id);
+  $id = str_replace(array('][', '_', ' '), '-', $id);
   return $id;
 }
