--- content_views.inc	2007-11-06 10:28:49.000000000 -0500
+++ content_views_new.inc	2007-11-06 11:41:11.000000000 -0500
@@ -68,7 +68,8 @@ function content_views_field_tables($fie
       'sortable' => isset($main_column['sortable']) ? $main_column['sortable'] : FALSE,
       'query_handler' => 'content_views_field_query_handler',
       'handler' => array('content_views_field_handler_group' => t('Group multiple values'),
-                         'content_views_field_handler_ungroup' => t('Do not group multiple values')),
+                         'content_views_field_handler_ungroup' => t('Do not group multiple values'),
+                         'content_views_field_handler_first' => t('Show first value only')),
       'option' => array('#type' => 'select', '#options' => $formatters),
       'content_db_info' => $db_info,
       'content_field' => $field,
@@ -114,7 +115,7 @@ function content_views_field_tables($fie
 }
 
 function content_views_field_query_handler($field, &$fieldinfo, &$query) {
-  if ($field['handler'] == 'content_views_field_handler_group') {
+  if (($field['handler'] == 'content_views_field_handler_group') || ($field['handler'] == 'content_views_field_handler_first')) {
     // we manage the addition of fields ourselves
     // if not multiple field, add the columns to the query
     if (!$fieldinfo['content_field']['multiple']) {
@@ -170,6 +171,27 @@ function content_views_field_handler_ung
   return content_format($field, $item, $field_data['options'], $data);
 }
 
+function content_views_field_handler_first($field_info, $field_data, $value, $data) {
+  $field = $field_info['content_field'];
+  $items = array();
+  if ($field['multiple']) {
+    foreach ($field_info['content_db_info']['columns'] as $column => $attributes) {
+      $query_columns[] = "node_data_$field[field_name].$attributes[column] AS $column";
+    }
+    $query = "SELECT ". implode(', ', $query_columns) .
+             " FROM {node} node".
+             " LEFT JOIN {". $field_info['content_db_info']['table'] ."} node_data_$field[field_name] ON node.vid = node_data_$field[field_name].vid".
+             " WHERE node.nid = ". $data->nid .
+             " ORDER BY node_data_$field[field_name].delta";
+    $result = db_query(db_rewrite_sql($query, 'node'));
+    $item = db_fetch_array($result);
+    return content_format($field, $item, $field_data['options'], $data);
+  }
+  else {
+    return content_views_field_handler_ungroup($field_info, $field_data, $value, $data);
+  }
+}
+
 function theme_content_view_multiple_field($items, $field, $data) {
   foreach ($items as $item) {
     $output .= '<div class="field-item">'. $item .'</div>';
