diff --git a/handlers/views_handler_field.inc b/handlers/views_handler_field.inc
index 65210d9..3f5ea9c 100644
--- a/handlers/views_handler_field.inc
+++ b/handlers/views_handler_field.inc
@@ -103,60 +103,15 @@ class views_handler_field extends views_handler {
   }
 
   /**
-   * Add 'additional' fields to the query.
-   *
-   * @param $fields
-   * An array of fields. The key is an identifier used to later find the
-   * field alias used. The value is either a string in which case it's
-   * assumed to be a field on this handler's table; or it's an array in the
-   * form of
-   * @code array('table' => $tablename, 'field' => $fieldname) @endcode
+   * Add group params for additional fields on field handlers.
    */
-  function add_additional_fields($fields = NULL) {
-    if (!isset($fields)) {
-      // notice check
-      if (empty($this->additional_fields)) {
-        return;
-      }
-      $fields = $this->additional_fields;
-    }
-
-    $group_params = array();
+  function add_additional_fields($fields = NULL, $group_params = array()) {
     if ($this->options['group_type'] != 'group') {
       $group_params = array(
         'function' => $this->options['group_type'],
       );
     }
-
-    if (!empty($fields) && is_array($fields)) {
-      foreach ($fields as $identifier => $info) {
-        if (is_array($info)) {
-          if (isset($info['table'])) {
-            $table_alias = $this->query->ensure_table($info['table'], $this->relationship);
-          }
-          else {
-            $table_alias = $this->table_alias;
-          }
-
-          if (empty($table_alias)) {
-            debug(t('Handler @handler tried to add additional_field @identifier but @table could not be added!', array('@handler' => $this->definition['handler'], '@identifier' => $identifier, '@table' => $info['table'])));
-            $this->aliases[$identifier] = 'broken';
-            continue;
-          }
-
-          $params = array();
-          if (!empty($info['params'])) {
-            $params = $info['params'];
-          }
-
-          $params += $group_params;
-          $this->aliases[$identifier] = $this->query->add_field($table_alias, $info['field'], NULL, $params);
-        }
-        else {
-          $this->aliases[$info] = $this->query->add_field($this->table_alias, $info, NULL, $group_params);
-        }
-      }
-    }
+    parent::add_additional_fields($fields, $group_params);
   }
 
   /**
diff --git a/includes/handlers.inc b/includes/handlers.inc
index 2a33d5d..aaaf654 100644
--- a/includes/handlers.inc
+++ b/includes/handlers.inc
@@ -650,6 +650,57 @@ class views_handler extends views_object {
   }
 
   /**
+   * Add 'additional' fields to the query.
+   *
+   * @param $fields
+   * An array of fields. The key is an identifier used to later find the
+   * field alias used. The value is either a string in which case it's
+   * assumed to be a field on this handler's table; or it's an array in the
+   * form of
+   * @param array $group_params
+   * @code array('table' => $tablename, 'field' => $fieldname) @endcode
+   */
+  function add_additional_fields($fields = NULL, $group_params = array()) {
+    if (!isset($fields)) {
+      // notice check
+      if (empty($this->additional_fields)) {
+        return;
+      }
+      $fields = $this->additional_fields;
+    }
+
+    if (!empty($fields) && is_array($fields)) {
+      foreach ($fields as $identifier => $info) {
+        if (is_array($info)) {
+          if (isset($info['table'])) {
+            $table_alias = $this->query->ensure_table($info['table'], $this->relationship);
+          }
+          else {
+            $table_alias = $this->table_alias;
+          }
+
+          if (empty($table_alias)) {
+            debug(t('Handler @handler tried to add additional_field @identifier but @table could not be added!', array('@handler' => $this->definition['handler'], '@identifier' => $identifier, '@table' => $info['table'])));
+            $this->aliases[$identifier] = 'broken';
+            continue;
+          }
+
+          $params = array();
+          if (!empty($info['params'])) {
+            $params = $info['params'];
+          }
+
+          $params += !empty($group_params) ? $group_params : array();
+          $this->aliases[$identifier] = $this->query->add_field($table_alias, $info['field'], NULL, $params);
+        }
+        else {
+          $this->aliases[$info] = $this->query->add_field($this->table_alias, $info, NULL, $group_params);
+        }
+      }
+    }
+  }
+
+  /**
    * Provide text for the administrative summary
    */
   function admin_summary() { }
