diff --git modules/comment/comment.module modules/comment/comment.module
index cba1d0f..23317b5 100644
--- modules/comment/comment.module
+++ modules/comment/comment.module
@@ -102,6 +102,7 @@ function comment_entity_info() {
       'object keys' => array(
         'id' => 'cid',
         'bundle' => 'node_type',
+        'label' => 'subject',
       ),
       'bundle keys' => array(
         'bundle' => 'type',
diff --git modules/field/field.crud.inc modules/field/field.crud.inc
index bf43757..b74446c 100644
--- modules/field/field.crud.inc
+++ modules/field/field.crud.inc
@@ -259,6 +259,9 @@ function field_create_field($field) {
   // collisions with existing object properties, but some is better
   // than none.
   foreach (entity_get_info() as $type => $info) {
+    // The label property marks the label location (e.g. title on a node object)
+    // we don't need to treat it as a reserved field name.
+    unset($info['object keys']['label']);
     if (in_array($field['field_name'], $info['object keys'])) {
       throw new FieldException(t('Attempt to create field name %name which is reserved by entity type %type.', array('%name' => $field['field_name'], '%type' => $type)));
     }
diff --git modules/node/node.module modules/node/node.module
index b5e5605..52abc50 100644
--- modules/node/node.module
+++ modules/node/node.module
@@ -197,6 +197,7 @@ function node_entity_info() {
         'id' => 'nid',
         'revision' => 'vid',
         'bundle' => 'type',
+        'label' => 'title',
       ),
       'bundle keys' => array(
         'bundle' => 'type',
diff --git modules/system/system.api.php modules/system/system.api.php
index 64945f5..bf8a1fd 100644
--- modules/system/system.api.php
+++ modules/system/system.api.php
@@ -82,6 +82,8 @@ function hook_hook_info() {
  *       the object (e.g. what nodes call "content type").
  *       This element can be omitted if this type has no bundles (all objects
  *       have the same fields).
+ *     - label: The name of the property that contains the label of the object
+ *       (e.g. node title).
  *   - bundle keys: An array describing how the Field API can extract the
  *     information it needs from the bundle objects for this type (e.g
  *     $vocabulary objects for terms; not applicable for nodes).
@@ -113,18 +115,23 @@ function hook_hook_info() {
 function hook_entity_info() {
   $return = array(
     'node' => array(
-      'name' => t('Node'),
+      'label' => t('Node'),
       'controller class' => 'NodeController',
       'base table' => 'node',
-      'id key' => 'nid',
-      'revision key' => 'vid',
+      'revision table' => 'node_revision',
       'fieldable' => TRUE,
-      'bundle key' => array('bundle' => 'type'),
+      'object keys' => array(
+        'id' => 'nid',
+        'revision' => 'vid',
+        'bundle' => 'type',
+        'label' => 'title',
+      ),
+      'bundle keys' => array(
+        'bundle' => 'type',
+      ),
       // Node.module handles its own caching.
       // 'cacheable' => FALSE,
-      // Bundles must provide human readable name so
-      // we can create help and error messages about them.
-      'bundles' => node_type_get_names(),
+      'bundles' => array(),
     ),
   );
   return $return;
diff --git modules/system/system.module modules/system/system.module
index 56e7fb4..c05c077 100644
--- modules/system/system.module
+++ modules/system/system.module
@@ -287,6 +287,7 @@ function system_entity_info() {
       'base table' => 'file',
       'object keys' => array(
         'id' => 'fid',
+        'label' => 'filename',
       ),
       'static cache' => FALSE,
     ),
diff --git modules/taxonomy/taxonomy.module modules/taxonomy/taxonomy.module
index 849588e..207489a 100644
--- modules/taxonomy/taxonomy.module
+++ modules/taxonomy/taxonomy.module
@@ -93,6 +93,7 @@ function taxonomy_entity_info() {
       'object keys' => array(
         'id' => 'tid',
         'bundle' => 'vocabulary_machine_name',
+        'label' => 'name',
       ),
       'bundle keys' => array(
         'bundle' => 'machine_name',
diff --git modules/user/user.module modules/user/user.module
index 5343204..d4480ac 100644
--- modules/user/user.module
+++ modules/user/user.module
@@ -91,6 +91,7 @@ function user_entity_info() {
       'fieldable' => TRUE,
       'object keys' => array(
         'id' => 'uid',
+        'label' => 'name',
       ),
       'bundles' => array(
         'user' => array(
