diff --git a/modules/field/field.default.inc b/modules/field/field.default.inc
index 2914abc1e7b9d8187fd6575e999ad9eec85bcaaf..f26f46ba3bdd4c73e6c5e646fcc8a29dd68c71af 100644
--- a/modules/field/field.default.inc
+++ b/modules/field/field.default.inc
@@ -203,6 +203,7 @@ function field_default_view($obj_type, $object, $field, $instance, $langcode, $i
         '#language' => $langcode,
         '#field_name' => $field['field_name'],
         '#field_type' => $field['type'],
+        '#field_translatable' => $field['translatable'],
         '#object_type' => $obj_type,
         '#bundle' => $bundle,
         '#object' => $object,
diff --git a/modules/field/field.module b/modules/field/field.module
index f0dc6bb8e2096a7a79050c98af4445cb87f23096..f4dba7cbe7e3f8b7d835613653669cc6271f7ba3 100644
--- a/modules/field/field.module
+++ b/modules/field/field.module
@@ -742,13 +742,11 @@ function field_extract_bundle($obj_type, $bundle) {
  */
 function template_preprocess_field(&$variables) {
   $element = $variables['element'];
-  $instance = field_info_instance($element['#object_type'], $element['#field_name'], $element['#bundle']);
-  $field = field_info_field($element['#field_name']);
 
   // @todo Convert to using drupal_html_class() after benchmarking the impact of
   //   doing so.
-  $field_type_css = strtr($field['type'], '_', '-');
-  $field_name_css = strtr($field['field_name'], '_', '-');
+  $field_type_css = strtr($element['#field_type'], '_', '-');
+  $field_name_css = strtr($element['#field_name'], '_', '-');
 
   // Prepare an $items variable that the template can simply loop on.
   // Filter out non-children properties that might have been added if the
@@ -757,20 +755,19 @@ function template_preprocess_field(&$variables) {
 
   $additions = array(
     'object' => $element['#object'],
-    'field' => $field,
-    'instance' => $instance,
     'build_mode' => $element['#build_mode'],
     'items' => $items,
-    'field_type' => $field['type'],
-    'field_name' => $field['field_name'],
+    'field_type' => $element['#field_type'],
+    'field_name' => $element['#field_name'],
     'field_type_css' => $field_type_css,
     'field_name_css' => $field_name_css,
     'label' => check_plain($element['#title']),
     'label_display' => $element['#label_display'],
     'label_hidden' => $element['#label_display'] == 'hidden',
     'field_language' => $element['#language'],
-    'field_translatable' => $field['translatable'],
+    'field_translatable' => $element['#field_translatable'],
     'classes_array' => array(
+      'field',
       'field-name-' . $field_name_css,
       'field-type-' . $field_type_css,
       'field-label-' . $element['#label_display'],
@@ -785,6 +782,7 @@ function template_preprocess_field(&$variables) {
   $variables = array_merge($variables, $additions);
 
   // Initialize attributes for each item.
+  $variables['item_attributes_array'] = array();
   foreach ($variables['items'] as $delta => $item) {
     $variables['item_attributes_array'][$delta] = array();
   }
diff --git a/modules/field/theme/field.tpl.php b/modules/field/theme/field.tpl.php
index 1c8be235da23e7bd634761ea4ec3a571ea3a6408..069ed48faac1e86bfec8008e67d670c2bfd10ad6 100644
--- a/modules/field/theme/field.tpl.php
+++ b/modules/field/theme/field.tpl.php
@@ -13,6 +13,7 @@
  *   CSS. It can be manipulated through the variable $classes_array from
  *   preprocess functions. The default values can be one or more of the
  *   following:
+ *   - field: The current template type, i.e., "theming hook".
  *   - field-name-[field_name]: The current field name. For example, if the
  *     field name is "field_description" it would result in
  *     "field-name-field-description".
@@ -23,7 +24,6 @@
  *
  * Other variables:
  * - $object: The object to which the field is attached.
- * - $field: The field array.
  * - $build_mode: Build mode, e.g. 'full', 'teaser'...
  * - $field_name: The field name.
  * - $field_type: The field type.
@@ -38,7 +38,7 @@
  * @see template_preprocess_field()
  */
 ?>
-<div class="field <?php print $classes; ?> clearfix"<?php print $attributes; ?>>
+<div class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
   <?php if (!$label_hidden) : ?>
     <div class="field-label"<?php print $title_attributes; ?>><?php print $label ?>:&nbsp;</div>
   <?php endif; ?>
diff --git a/modules/rdf/rdf.module b/modules/rdf/rdf.module
index e6eef8fd16922cddc7b311bb858b6459f1cca9c2..2ac831fb3bdbe4fa6ef9ad8a1a8734c7d78b9040 100644
--- a/modules/rdf/rdf.module
+++ b/modules/rdf/rdf.module
@@ -446,14 +446,12 @@ function rdf_preprocess_node(&$variables) {
  * Implements MODULE_preprocess_HOOK().
  */
 function rdf_preprocess_field(&$variables) {
-  $entity_type = $variables['element']['#object_type'];
-  $instance = $variables['instance'];
-  $mapping = rdf_mapping_load($entity_type, $instance['bundle']);
-  $field_name = $instance['field_name'];
-  $items = $variables['element']['#items'];
+  $element = $variables['element'];
+  $mapping = rdf_mapping_load($element['#object_type'], $element['#bundle']);
+  $field_name = $element['#field_name'];
 
   if (!empty($mapping) && !empty($mapping[$field_name])) {
-    foreach ($items as $delta => $item) {
+    foreach ($element['#items'] as $delta => $item) {
       $variables['item_attributes_array'][$delta] = rdf_rdfa_attributes($mapping[$field_name], $item);
     }
   }