diff --git a/imagecache_token.module b/imagecache_token.module
index b2b835b..c78996c 100644
--- a/imagecache_token.module
+++ b/imagecache_token.module
@@ -48,6 +48,10 @@ function imagecache_token_token_info() {
  */
 function imagecache_token_token_info_alter(&$data) {
   $fields = field_info_fields();
+  $use_hyphenated_field_name = FALSE;
+  if (module_exists('entity_token')) {
+    $use_hyphenated_field_name = TRUE;
+  }
 
   foreach ($fields as $field) {
     if ($field['type'] == 'image' || $field['type'] == 'file' || $field['type'] == 'media') {
@@ -56,6 +60,12 @@ function imagecache_token_token_info_alter(&$data) {
         if (!empty($data['tokens'][$token_type][$field['field_name']])) {
           $data['tokens'][$token_type][$field['field_name']]['type'] = 'image-field';
         }
+        if ($use_hyphenated_field_name) {
+          $hyphenated_field_name = str_replace('_', '-', $field['field_name']);
+          if (!empty($data['tokens'][$token_type][$hyphenated_field_name])) {
+            $data['tokens'][$token_type][$hyphenated_field_name]['type'] = 'image-field';
+          }
+        }
       }
     }
   }
@@ -66,6 +76,12 @@ function imagecache_token_token_info_alter(&$data) {
  */
 function imagecache_token_tokens($type, $tokens, array $data = array(), array $options = array()) {
   $replacements = array();
+
+  $use_hyphenated_field_name = FALSE;
+  if (module_exists('entity_token')) {
+    $use_hyphenated_field_name = TRUE;
+  }
+
   if ($type == 'entity' && !empty($data['entity'])) {
     $fields = field_info_fields();
 
@@ -74,6 +90,12 @@ function imagecache_token_tokens($type, $tokens, array $data = array(), array $o
         if (($image_field_tokens = token_find_with_prefix($tokens, $field['field_name'])) && $field_object = field_get_items($data['entity_type'], $data['entity'], $field['field_name'])) {
           $replacements += token_generate('image-field', $image_field_tokens, array('image-field' => $field_object), $options);
         }
+        if ($use_hyphenated_field_name) {
+          $hyphenated_field_name = str_replace('_', '-', $field['field_name']);
+          if (($image_field_tokens = token_find_with_prefix($tokens, $hyphenated_field_name)) && $field_object = field_get_items($data['entity_type'], $data['entity'], $field['field_name'])) {
+            $replacements += token_generate('image-field', $image_field_tokens, array('image-field' => $field_object), $options);
+          }
+        }
       }
     }
   }
@@ -83,7 +105,7 @@ function imagecache_token_tokens($type, $tokens, array $data = array(), array $o
       $output = array();
       foreach ($data['image-field'] as $field) {
         $explode = explode(':', $token);
-        
+
         $type = isset($explode[0]) ? $explode[0] : FALSE;
         $attribute = isset($explode[1]) ? $explode[1] : FALSE;
 
