--- email.module	2012-07-24 18:07:48.000000000 -0700
+++ email.module.fixed	2012-07-24 18:07:35.000000000 -0700
@@ -399,32 +399,42 @@ function email_mail($key, &$message, $pa
   }
 }
 
-
-//TODO Token support
-
 /**
- * Implements hook_token_list().
+ * Alter replacement values for placeholder tokens.
  *
-function email_token_list($type = 'all') {
-  if ($type == 'field' || $type == 'all') {
-    $tokens['email']['raw']       = t('Raw email address');
-    $tokens['email']['formatted'] = t('Formatted email address');
-    return $tokens;
-  }
-}
-
-/**
- * Implements hook token_values().
+ * @param $replacements
+ *   An associative array of replacements returned by hook_tokens().
+ * @param $context
+ *   The context in which hook_tokens() was called. An associative array with
+ *   the following keys, which have the same meaning as the corresponding
+ *   parameters of hook_tokens():
+ *   - 'type'
+ *   - 'tokens'
+ *   - 'data'
+ *   - 'options'
  *
-function email_token_values($type, $object = NULL, $options = array()) {
-  if ($type == 'field') {
-    $item = $object[0];
-    $tokens['raw']       = $item['email'];
-    $tokens['formatted'] = $item['view'];
-    return $tokens;
+ * @see hook_tokens()
+ */
+function email_tokens_alter(array &$replacements, array $context) {
+  $options = $context['options'];
+  $sanitize = !empty($options['sanitize']);
+  if ($context['type'] == 'node' && !empty($context['data']['node'])) {
+    $node = $context['data']['node'];
+    foreach (field_info_fields() as $field_info) {
+      if ($field_info['module'] == 'email' &&
+          ($field = $field_info['field_name']) &&
+          !empty($node->{$field})) {
+        $view = field_view_field('node', $node, $field);
+        $value = array();
+        foreach ($view['#items'] as $item) {
+          $value[] = $item['email'];
+        }
+        $value = implode(', ', $value);
+        $replacements['[node:' . $field .']'] = $sanitize ? check_plain($value) : $value;
+      }
+    }
   }
 }
- */
 
 /**
  * Settings for contact form
