Index: modules/field/field.attach.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.attach.inc,v
retrieving revision 1.37
diff -u -r1.37 field.attach.inc
--- modules/field/field.attach.inc	19 Aug 2009 13:31:12 -0000	1.37
+++ modules/field/field.attach.inc	21 Aug 2009 22:48:49 -0000
@@ -1008,8 +1008,6 @@
  *       '#object_type' => the type of the object being displayed,
  *       '#build_mode' => the build mode,
  *       '#field_name' => the name of the field,
- *       '#single' => boolean indicating whether the formatter is single or
- *         multiple,
  *       'items' => array(
  *         // One sub-array per field value, keyed by delta.
  *         0 => array(
@@ -1057,7 +1055,6 @@
   drupal_alter('field_attach_view', $output, $obj_type, $object, $build_mode);
 
   return $output;
-
 }
 
 /**
Index: modules/field/field.default.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.default.inc,v
retrieving revision 1.15
diff -u -r1.15 field.default.inc
--- modules/field/field.default.inc	19 Aug 2009 13:31:12 -0000	1.15
+++ modules/field/field.default.inc	21 Aug 2009 22:48:49 -0000
@@ -47,6 +47,7 @@
     $items = field_get_default_value($obj_type, $object, $field, $instance);
   }
 }
+
 /**
  * Default field 'view' operation.
  *
@@ -81,7 +82,6 @@
       '#access' => field_access('view', $field),
       '#label_display' => $label_display,
       '#build_mode' => $build_mode,
-      '#single' => $single,
       'items' => array(),
     );
 
@@ -96,9 +96,9 @@
     // Append formatter information either on each item ('single-value' formatter)
     // or at the upper 'items' level ('multiple-value' formatter)
     $format_info = $info + array(
+      '#theme' => $theme,
       '#formatter' => $display['type'],
       '#settings' => $display['settings'],
-      '#theme' => $theme,
     );
 
     if ($single) {
Index: modules/field/field.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.module,v
retrieving revision 1.24
diff -u -r1.24 field.module
--- modules/field/field.module	19 Aug 2009 22:46:05 -0000	1.24
+++ modules/field/field.module	21 Aug 2009 22:48:49 -0000
@@ -638,13 +638,6 @@
 /**
  * Theme preprocess function for field.tpl.php.
  *
- * The $variables array contains the following arguments:
- * - $object
- * - $field
- * - $items
- * - $teaser
- * - $page
- *
  * @see field.tpl.php
  */
 function template_preprocess_field(&$variables) {
@@ -653,52 +646,27 @@
   $instance = field_info_instance($element['#field_name'], $bundle);
   $field = field_info_field($element['#field_name']);
 
-  $variables['object'] = $element['#object'];
-  $variables['field'] = $field;
-  $variables['instance'] = $instance;
-  $variables['items'] = array();
-
-  if ($element['#single']) {
-    // Single value formatter.
-    foreach (element_children($element['items']) as $delta) {
-      $variables['items'][$delta] = $element['items'][$delta]['#item'];
-      $variables['items'][$delta]['view'] = drupal_render_children($element['items'], array($delta));
-    }
-  }
-  else {
-    // Multiple values formatter.
-    // We display the 'all items' output as $items[0], as if it was the
-    // output of a single valued field.
-    // Raw values are still exposed for all items.
-    foreach (element_children($element['items']) as $delta) {
-      $variables['items'][$delta] = $element['items'][$delta]['#item'];
-    }
-    $variables['items'][0]['view'] = drupal_render_children($element, array('items'));
-  }
-
-  $variables['build_mode'] = $element['#build_mode'];
-  $variables['page'] = (bool)menu_get_object();
-
-  $field_empty = TRUE;
-
-  foreach ($variables['items'] as $delta => $item) {
-    if (!isset($item['view']) || (empty($item['view']) && (string)$item['view'] !== '0')) {
-      $variables['items'][$delta]['empty'] = TRUE;
-    }
-    else {
-      $field_empty = FALSE;
-      $variables['items'][$delta]['empty'] = FALSE;
-    }
-  }
+  $field_type_css = strtr($field['type'], '_', '-');
+  $field_name_css = strtr($field['field_name'], '_', '-');
 
   $additions = array(
+    'object' => $element['#object'],
+    'field' => $field,
+    'instance' => $instance,
+    'build_mode' => $element['#build_mode'],
+    'items' => $element['items'],
     'field_type' => $field['type'],
     'field_name' => $field['field_name'],
-    'field_type_css' => strtr($field['type'], '_', '-'),
-    'field_name_css' => strtr($field['field_name'], '_', '-'),
-    'label' => check_plain(t($instance['label'])),
+    'field_type_css' => $field_type_css,
+    'field_name_css' => $field_name_css,
+    'label' => $element['#title'],
     'label_display' => $element['#label_display'],
-    'field_empty' => $field_empty,
+    'label_hidden' => $element['#label_display'] == 'hidden',
+    'classes_array' => array(
+      'field-name-' . $field_name_css,
+      'field-type-' . $field_type_css,
+      'field-label-' . $element['#label_display'],
+    ),
     'template_files' => array(
       'field',
       'field-' . $element['#field_name'],
Index: modules/field/theme/field.tpl.php
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/theme/field.tpl.php,v
retrieving revision 1.3
diff -u -r1.3 field.tpl.php
--- modules/field/theme/field.tpl.php	22 Jun 2009 09:10:04 -0000	1.3
+++ modules/field/theme/field.tpl.php	21 Aug 2009 22:48:49 -0000
@@ -2,48 +2,48 @@
 // $Id: field.tpl.php,v 1.3 2009/06/22 09:10:04 dries Exp $
 
 /**
- * @file field-field.tpl.php
+ * @file field.tpl.php
  * Default theme implementation to display the value of a field.
  *
  * Available variables:
+ * - $items: An array of field values. Use render() to output them.
+ * - $label: The item label.
+ * - $label_hidden: Whether the label display is set to 'hidden'.
+ * - $classes: String of classes that can be used to style contextually through
+ *   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-name-[field_name]: The current field name. For example, if the
+ *     field name is "field_description" it would result in
+ *     "field-name-field-description".
+ *   - field-type-[field_type]: The current field type. For example, if the
+ *     field type is "text" it would result in "field-type-text".
+ *   - field-label-[label_display]: The current label position. For example, if the
+ *     label position is "above" it would result in "field-label-above".
+ *
+ * Other variables:
  * - $object: The object to which the field is attached.
  * - $field: The field array.
- * - $items: An array of values for each item in the field array.
  * - $build_mode: Build mode, e.g. 'full', 'teaser'...
- * - $page: Whether this is displayed as a page.
  * - $field_name: The field name.
  * - $field_type: The field type.
  * - $field_name_css: The css-compatible field name.
  * - $field_type_css: The css-compatible field type.
- * - $label: The item label.
- * - $label_display: Position of label display, inline, above, or hidden.
- * - $field_empty: Whether the field has any valid value.
- *
- * Each $item in $items contains:
- * - 'view' - the themed view for that item
- *
+ * - $label_display: Position of label display: 'inline', 'above', or 'hidden'.
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
  * @see template_preprocess_field()
  */
 ?>
-<?php if (!$field_empty) : ?>
-<div class="field field-type-<?php print $field_type_css ?> field-<?php print $field_name_css ?>">
-  <?php if ($label_display == 'above') : ?>
-    <div class="field-label"><?php print t($label) ?>:&nbsp;</div>
-  <?php endif;?>
-  <div class="field-items">
-    <?php $count = 1;
-    foreach ($items as $delta => $item) :
-      if (!$item['empty']) : ?>
-        <div class="field-item <?php print ($count % 2 ? 'odd' : 'even') ?>">
-          <?php if ($label_display == 'inline') { ?>
-            <div class="field-label-inline<?php print($delta ? '' : '-first')?>">
-              <?php print t($label) ?>:&nbsp;</div>
-          <?php } ?>
-          <?php print $item['view'] ?>
-        </div>
-      <?php $count++;
-      endif;
-    endforeach;?>
+<?php if ($items) : ?>
+  <div class="field <?php print $classes; ?> clearfix">
+    <?php if (!$label_hidden) : ?>
+      <div class="field-label"><?php print $label ?>:&nbsp;</div>
+    <?php endif; ?>
+    <div class="field-items">
+      <?php foreach ($items as $delta => $item) : ?>
+        <div class="field-item <?php print $delta % 2 ? 'odd' : 'even'; ?>"><?php print render($item); ?></div>
+      <?php endforeach; ?>
+    </div>
   </div>
-</div>
 <?php endif; ?>
Index: modules/field/theme/field.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/theme/field.css,v
retrieving revision 1.5
diff -u -r1.5 field.css
--- modules/field/theme/field.css	12 Jun 2009 08:39:37 -0000	1.5
+++ modules/field/theme/field.css	21 Aug 2009 22:48:49 -0000
@@ -1,17 +1,13 @@
 /* $Id: field.css,v 1.5 2009/06/12 08:39:37 dries Exp $ */
 
 /* Field display */
-.field .field-label,
-.field .field-label-inline,
-.field .field-label-inline-first {
+.field .field-label {
   font-weight: bold;
 }
-.field .field-label-inline,
-.field .field-label-inline-first {
-  display: inline;
-}
-.field .field-label-inline {
-  visibility: hidden;
+
+.field-label-inline .field-label,
+.field-label-inline .field-items {
+  float:left;
 }
 
 form .field-multiple-table {
