diff --git a/core/modules/locale/locale.module b/core/modules/locale/locale.module
index 880e335..4f9b200 100644
--- a/core/modules/locale/locale.module
+++ b/core/modules/locale/locale.module
@@ -256,10 +256,6 @@ function locale_permission() {
  */
 function locale_theme() {
   return array(
-    'locale_translate_edit_form_strings' => array(
-      'render element' => 'form',
-      'file' => 'locale.pages.inc',
-    ),
     'locale_translation_last_check' => array(
       'variables' => array('last' => NULL),
       'file' => 'locale.pages.inc',
diff --git a/core/modules/locale/locale.pages.inc b/core/modules/locale/locale.pages.inc
index fc68a51..eea9849 100644
--- a/core/modules/locale/locale.pages.inc
+++ b/core/modules/locale/locale.pages.inc
@@ -270,10 +270,16 @@ function locale_translate_edit_form($form, &$form_state) {
   );
 
   $form['strings'] = array(
-    '#type' => 'item',
+    '#type' => 'table',
     '#tree' => TRUE,
-    '#language' => $langname,
-    '#theme' => 'locale_translate_edit_form_strings',
+    '#header' => array(
+      t('Source string'),
+      t('Translation for @language', array('@language' => $langname)),
+    ),
+    '#empty' => t('No strings available.'),
+    '#attributes' => array(
+      'class' => array('locale-translate-edit-table'),
+    ),
   );
 
   if (isset($langcode)) {
@@ -289,11 +295,8 @@ function locale_translate_edit_form($form, &$form_state) {
       $translation_array = $string->getPlurals();
       if (count($source_array) == 1) {
         // Add original string value and mark as non-plural.
-        $form['strings'][$string->lid]['plural'] = array(
-          '#type' => 'value',
-          '#value' => 0,
-        );
-        $form['strings'][$string->lid]['original'] = array(
+        $plural = FALSE;
+        $form['strings'][$string->lid]['source'] = array(
           '#type' => 'item',
           '#title' => t('Source string'),
           '#title_display' => 'invisible',
@@ -302,30 +305,29 @@ function locale_translate_edit_form($form, &$form_state) {
       }
       else {
         // Add original string value and mark as plural.
-        $form['strings'][$string->lid]['plural'] = array(
-          '#type' => 'value',
-          '#value' => 1,
-        );
-        $form['strings'][$string->lid]['original_singular'] = array(
+        $plural = TRUE;
+        $form['strings'][$string->lid]['source']['original_singular'] = array(
           '#type' => 'item',
           '#title' => t('Singular form'),
           '#markup' => check_plain($source_array[0]),
+          '#suffix' => '<br />',
         );
-        $form['strings'][$string->lid]['original_plural'] = array(
+        $form['strings'][$string->lid]['source']['original_plural'] = array(
           '#type' => 'item',
           '#title' => t('Plural form'),
           '#markup' => check_plain($source_array[1]),
         );
       }
       if (!empty($string->context)) {
-        $form['strings'][$string->lid]['context'] = array(
-          '#type' => 'value',
-          '#value' => check_plain($string->context),
+        $form['strings'][$string->lid]['source']['context'] = array(
+          '#prefix' => '<br /><small>' . t('In Context') . ':&nbsp;',
+          '#markup' => check_plain($string->context),
+          '#suffix' => '</small>',
         );
       }
       // Approximate the number of rows to use in the default textarea.
       $rows = min(ceil(str_word_count($source_array[0]) / 12), 10);
-      if (empty($form['strings'][$string->lid]['plural']['#value'])) {
+      if (!$plural) {
         $form['strings'][$string->lid]['translations'][0] = array(
           '#type' => 'textarea',
           '#title' => t('Translated string'),
@@ -692,48 +694,6 @@ function _locale_translation_status_debug_info($source) {
 }
 
 /**
- * Returns HTML for translation edit form.
- *
- * @param array $variables
- *   An associative array containing:
- *   - form: The form that contains the language information.
- *
- * @see locale_translate_edit_form()
- * @ingroup themeable
- */
-function theme_locale_translate_edit_form_strings($variables) {
-  $output = '';
-  $form = $variables['form'];
-  $header = array(
-    t('Source string'),
-    t('Translation for @language', array('@language' => $form['#language'])),
-  );
-  $rows = array();
-  foreach (element_children($form) as $lid) {
-    $string = $form[$lid];
-    if ($string['plural']['#value']) {
-      $source = drupal_render($string['original_singular']) . '<br />' . drupal_render($string['original_plural']);
-    }
-    else {
-      $source = drupal_render($string['original']);
-    }
-    $source .= empty($string['context']) ? '' : '<br /><small>' . t('In Context') . ':&nbsp;' . $string['context']['#value'] . '</small>';
-    $rows[] = array(
-      array('data' => $source),
-      array('data' => $string['translations']),
-    );
-  }
-  $output .= theme('table', array(
-    'header' => $header,
-    'rows' => $rows,
-    'empty' => t('No strings available.'),
-    'attributes' => array('class' => array('locale-translate-edit-table')),
-  ));
-  $output .= theme('pager');
-  return $output;
-}
-
-/**
  * Returns HTML for translation status information per language.
  *
  * @param array $variables
