Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.241
diff -u -r1.241 form.inc
--- includes/form.inc	31 Oct 2007 15:10:33 -0000	1.241
+++ includes/form.inc	6 Nov 2007 15:41:07 -0000
@@ -2041,7 +2041,7 @@
     $seen_ids = array();
     return;
   }
-  $id = str_replace(array('][', '_', ' '), '-', $id);
+  $id = preg_replace('/[^A-Za-z0-9:.-]/', '-', $id);
 
   // Ensure IDs are unique. The first occurrence is held but left alone.
   // Subsequent occurrences get a number appended to them. This incrementing
