diff --git a/includes/common.inc b/includes/common.inc
index fec01bc1bb5269d65137c32253ca0afdb66200aa..fc5971dc08d42502e92617679454d9b3f066b426 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -5776,9 +5776,6 @@ function drupal_common_theme() {
     'form_element_label' => array(
       'render element' => 'element',
     ),
-    'form_error_marker' => array(
-      'render element' => 'element',
-    ),
     'vertical_tabs' => array(
       'render element' => 'element',
     ),
diff --git a/includes/form.inc b/includes/form.inc
index c3c74e15d8fd7c6f52cdc10a90e1d43b95882253..c5525c9e2ab39244002f0ef7bcc953e754e36e22 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -1126,10 +1126,7 @@ function _form_validate(&$elements, &$form_state, $form_id = NULL) {
     // An unchecked checkbox has a #value of integer 0, different than string
     // '0', which could be a valid value.
     if (isset($elements['#needs_validation']) && $elements['#required'] && (!count($elements['#value']) || (is_string($elements['#value']) && strlen(trim($elements['#value'])) == 0) || $elements['#value'] === 0)) {
-      form_error($elements, $t('<a href="#!field_id">!name</a> field is required.', array(
-        '!field_id' => $elements['#id'],
-        '!name' => $elements['#title'],
-      )));
+      form_error($elements, $t('!name field is required.', array('!name' => $elements['#title'])));
     }
 
     // Call user-defined form level validators.
@@ -3455,9 +3452,6 @@ function theme_form_element_label($variables) {
   // If the element is required, a required marker is appended to the label.
   $required = !empty($element['#required']) ? theme('form_required_marker', array('element' => $element)) : '';
 
-  // If the element has an error, append the themeable marker to the label.
-  $error = theme('form_error_marker', array('element' => $element));
-
   $title = filter_xss_admin($element['#title']);
 
   $attributes = array();
@@ -3475,50 +3469,7 @@ function theme_form_element_label($variables) {
   }
 
   // The leading whitespace helps visually separate fields from inline labels.
-  return ' <label' . drupal_attributes($attributes) . '>' . $t('!title !required !error', array('!title' => $title, '!required' => $required, '!error' => $error)) . "</label>\n";
-}
-
-/**
- * Theme an invisible error marker for form elements.
- *
- * By default this function outputs the error message, if any, in an invisible
- * span. This allows screen reader users to identify the fields with errors.
- * Override this function to provide an alternative error marker, such as
- * visible error text or an indicator with a tooltip to show the full error.
- *
- * @param $variables
- *   An associative array containing:
- *   - element: An associative array containing the properties of the element.
- * @return
- *   A string with a marker to identify an error, otherwise an empty string.
- *
- * @ingroup themeable
- */
-function theme_form_error_marker($variables) {
-  $element = $variables['element'];
-  // This is also used in the installer, pre-database setup.
-  $t = get_t();
-
-  $output = '';
-  if ($raw_error = form_get_error($element)) {
-    // A simple call to empty() will not cut it here as some fields, like
-    // checkboxes, can return a valid value of '0'. Instead, check the
-    // length if it's a string, and the item count if it's an array.
-    // This is the same logic used when validating #required fields.
-    // @see _form_validate()
-    if ($element['#required'] && (!count($element['#value']) || (is_string($element['#value']) && strlen(trim($element['#value'])) == 0))) {
-      $error = $t('This field is required.');
-    }
-    else {
-      $error = strip_tags($raw_error);
-    }
-    $attributes = array(
-      'class' => array('element-invisible', 'error', 'error-marker'),
-    );
-    $output .= ' <span' . drupal_attributes($attributes) . '>' . $error . '</span>';
-  }
-
-  return $output;
+  return ' <label' . drupal_attributes($attributes) . '>' . $t('!title !required', array('!title' => $title, '!required' => $required)) . "</label>\n";
 }
 
 /**
diff --git a/modules/field/tests/field.test b/modules/field/tests/field.test
index b932479c83be28a1cd934047c85ae8aad1a72e23..479b0a9662f30f0f861b6cd91397e1538781be77 100644
--- a/modules/field/tests/field.test
+++ b/modules/field/tests/field.test
@@ -1300,7 +1300,7 @@ class FieldFormTestCase extends FieldTestCase {
     // Submit with missing required value.
     $edit = array();
     $this->drupalPost('test-entity/add/test-bundle', $edit, t('Save'));
-    $this->assertText(t('!name field is required.', array('!name' => $this->instance['label'])), 'Required field with no value fails validation');
+    $this->assertRaw(t('!name field is required.', array('!name' => $this->instance['label'])), 'Required field with no value fails validation');
 
     // Create an entity
     $value = mt_rand(1, 127);
@@ -1316,7 +1316,7 @@ class FieldFormTestCase extends FieldTestCase {
     $value = '';
     $edit = array("{$this->field_name}[$langcode][0][value]" => $value);
     $this->drupalPost('test-entity/' . $id . '/edit', $edit, t('Save'));
-    $this->assertText(t('!name field is required.', array('!name' => $this->instance['label'])), 'Required field with no value fails validation');
+    $this->assertRaw(t('!name field is required.', array('!name' => $this->instance['label'])), 'Required field with no value fails validation');
   }
 
 //  function testFieldFormMultiple() {
diff --git a/modules/simpletest/tests/form.test b/modules/simpletest/tests/form.test
index 32865c01ebdf12844bd1346b91fa591e4993b74e..525a8a2910d57f2d556d3b3e53947cd83faaafe9 100644
--- a/modules/simpletest/tests/form.test
+++ b/modules/simpletest/tests/form.test
@@ -63,7 +63,7 @@ class FormsTestCase extends DrupalWebTestCase {
     $elements['file']['empty_values'] = $empty_strings;
 
     // Regular expression to find the expected marker on required elements.
-    $required_marker_preg = '@<label.*<span class="form-required" title="This field is required\.">\*</span>.*</label>@';
+    $required_marker_preg = '@<label.*<span class="form-required" title="This field is required\.">\*</span></label>@';
 
     // Go through all the elements and all the empty values for them.
     foreach ($elements as $type => $data) {
diff --git a/themes/seven/style.css b/themes/seven/style.css
index 71a8d501370ef4352031d3075ff316a8ad20ced2..a6bd0c43b4864cd250147653161cf340a73c99c4 100644
--- a/themes/seven/style.css
+++ b/themes/seven/style.css
@@ -256,10 +256,6 @@ div.error {
 div.error p.error {
   color: #333;
 }
-div.error a {
-  color: #fff;
-  text-decoration: underline;
-}
 div.status {
   color: #234600;
   background: #f8fff0;