Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.992
diff -u -p -r1.992 common.inc
--- includes/common.inc	18 Sep 2009 10:54:20 -0000	1.992
+++ includes/common.inc	20 Sep 2009 17:47:08 -0000
@@ -4704,6 +4704,9 @@ function drupal_common_theme() {
     'form_element' => array(
       'arguments' => array('element' => NULL),
     ),
+    'form_required_marker' => array(
+      'arguments' => array(),
+    ),
     'text_format_wrapper' => array(
       'arguments' => array('element' => NULL),
     ),
Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.374
diff -u -p -r1.374 form.inc
--- includes/form.inc	20 Sep 2009 07:32:17 -0000	1.374
+++ includes/form.inc	20 Sep 2009 17:47:10 -0000
@@ -2606,7 +2606,7 @@ function theme_form_element($element) {
   }
 
   $output = '<div class="' . implode(' ', $class) . '">' . "\n";
-  $required = !empty($element['#required']) ? '<span class="form-required" title="' . $t('This field is required.') . '">*</span>' : '';
+  $required = !empty($element['#required']) ? theme('form_required_marker') : '';
 
   if (!empty($element['#title']) && empty($element['#form_element_skip_title'])) {
     $title = $element['#title'];
@@ -2630,6 +2630,20 @@ function theme_form_element($element) {
 }
 
 /**
+ * Theme the marker for requried form elements.
+ *
+ * @return
+ *   A string representing the marker to identify required form elements.
+ *
+ * @ingroup themeable
+ */
+function theme_form_required_marker() {
+  // This is also used in the installer, pre-database setup.
+  $t = get_t();
+  return '<span class="form-required" title="' . $t('This field is required.') . '">*</span>';
+}
+
+/**
  * Sets a form element's class attribute.
  *
  * Adds 'required' and 'error' classes as needed.
