diff --git a/entity.api.php b/entity.api.php
index 130e1ce..0ecbb6b 100644
--- a/entity.api.php
+++ b/entity.api.php
@@ -314,6 +314,8 @@ function entity_metadata_hook_entity_info() {
  *       an example.
  *     - translatable: (optional) Whether the property is translatable, defaults
  *       to FALSE.
+ *     - 'no token': (optional) If the Entity Tokens module is enabled, it will
+ *       provide a token for each property unless this value is set to TRUE.
  *   - bundles: An array keyed by bundle name containing further metadata
  *     related to the bundles only. This array may contain the key 'properties'
  *     with an array of info about the bundle specific properties, structured in
diff --git a/entity_token.tokens.inc b/entity_token.tokens.inc
index e6d7819..2cc3388 100644
--- a/entity_token.tokens.inc
+++ b/entity_token.tokens.inc
@@ -49,7 +49,7 @@ function entity_token_token_info_alter(&$info) {
     foreach (entity_get_all_property_info($type) as $name => $property) {
       $name = str_replace('_', '-', $name);
 
-      if (!isset($info['tokens'][$token_type][$name]) && (!isset($property['type']) || in_array($property['type'], $valid_types))) {
+      if (!isset($info['tokens'][$token_type][$name]) && (!isset($property['type']) || in_array($property['type'], $valid_types)) && (!isset($property['no token']) || !$property['no token'])) {
         $info['tokens'][$token_type][$name] = array(
           'name' => $property['label'],
           'type' => isset($property['type']) ? array_search($property['type'], $valid_types) : 'text',
