diff --git a/core/modules/entity/entity.query.inc b/core/modules/entity/entity.query.inc
index b4e91a2..e6249c9 100644
--- a/core/modules/entity/entity.query.inc
+++ b/core/modules/entity/entity.query.inc
@@ -813,7 +813,7 @@ class EntityFieldQuery {
       $this->addCondition($select_query, $sql_field, $this->entityConditions['entity_id']);
     }
 
-    // If there is a revision key defined, use it.
+    // Handle the revision condition if there is a revision key defined or not.
     if (!empty($entity_info['entity keys']['revision'])) {
       $sql_field = $entity_info['entity keys']['revision'];
       $select_query->addField($base_table, $sql_field, 'revision_id');
@@ -827,24 +827,19 @@ class EntityFieldQuery {
     }
     $id_map['revision_id'] = $sql_field;
 
-    // Handle bundles.
+    // Handle the bundle condition if there is a bundle key defined or not.
     if (!empty($entity_info['entity keys']['bundle'])) {
       $sql_field = $entity_info['entity keys']['bundle'];
-      $having = FALSE;
-
-      if (!empty($base_table_schema['fields'][$sql_field])) {
-        $select_query->addField($base_table, $sql_field, 'bundle');
+      $select_query->addField($base_table, $sql_field, 'bundle');
+      if (isset($this->entityConditions['bundle'])) {
+        $this->addCondition($select_query, $sql_field, $this->entityConditions['bundle']);
       }
     }
     else {
       $sql_field = 'bundle';
       $select_query->addExpression(':bundle', 'bundle', array(':bundle' => $entity_type));
-      $having = TRUE;
     }
     $id_map['bundle'] = $sql_field;
-    if (isset($this->entityConditions['bundle'])) {
-      $this->addCondition($select_query, $sql_field, $this->entityConditions['bundle'], $having);
-    }
 
     // Order the query.
     foreach ($this->order as $order) {
diff --git a/core/modules/entity/tests/entity_query.test b/core/modules/entity/tests/entity_query.test
index 49cf7b8..3bcd8b3 100644
--- a/core/modules/entity/tests/entity_query.test
+++ b/core/modules/entity/tests/entity_query.test
@@ -165,6 +165,7 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
     $query = new EntityFieldQuery();
     $query
       ->entityCondition('entity_type', 'test_entity_bundle')
+      ->entityCondition('bundle', 'test_entity_bundle')
       ->entityCondition('entity_id', '5');
     $this->assertEntityFieldQuery($query, array(
       array('test_entity_bundle', 5),
@@ -683,6 +684,14 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
       ->execute();
     $this->assertEqual($query_count, 1, t('Test query count on field condition.'));
 
+    $query = new EntityFieldQuery();
+    $query_count = $query
+      ->entityCondition('entity_type', 'test_entity_bundle')
+      ->entityCondition('bundle', 'test_entity_bundle')
+      ->count()
+      ->execute();
+    $this->assertEqual($query_count, 1, t('Test query count on entity with no bundles.'));
+
     // First, test without options.
     $query = new EntityFieldQuery();
     $query
diff --git a/core/modules/field/tests/field_test.entity.inc b/core/modules/field/tests/field_test.entity.inc
index b7c70a6..c79b642 100644
--- a/core/modules/field/tests/field_test.entity.inc
+++ b/core/modules/field/tests/field_test.entity.inc
@@ -23,7 +23,7 @@ function field_test_entity_info() {
 
   return array(
     'test_entity' => array(
-      'name' => t('Test Entity'),
+      'label' => t('Test Entity'),
       'fieldable' => TRUE,
       'field cache' => FALSE,
       'base table' => 'test_entity',
@@ -38,7 +38,7 @@ function field_test_entity_info() {
     ),
     // This entity type doesn't get form handling for now...
     'test_cacheable_entity' => array(
-      'name' => t('Test Entity, cacheable'),
+      'label' => t('Test Entity, cacheable'),
       'fieldable' => TRUE,
       'field cache' => TRUE,
       'entity keys' => array(
@@ -50,7 +50,7 @@ function field_test_entity_info() {
       'view modes' => $test_entity_modes,
     ),
     'test_entity_bundle_key' => array(
-      'name' => t('Test Entity with a bundle key.'),
+      'label' => t('Test Entity with a bundle key.'),
       'base table' => 'test_entity_bundle_key',
       'fieldable' => TRUE,
       'field cache' => FALSE,
@@ -63,21 +63,19 @@ function field_test_entity_info() {
     ),
     // In this case, the bundle key is not stored in the database.
     'test_entity_bundle' => array(
-      'name' => t('Test Entity with a specified bundle.'),
+      'label' => t('Test Entity with a specified bundle.'),
       'base table' => 'test_entity_bundle',
       'fieldable' => TRUE,
-      'controller class' => 'TestEntityBundleController',
       'field cache' => FALSE,
       'entity keys' => array(
         'id' => 'ftid',
-        'bundle' => 'fttype',
       ),
       'bundles' => array('test_entity_2' => array('label' => 'Test entity 2')),
       'view modes' => $test_entity_modes,
     ),
     // @see EntityPropertiesTestCase::testEntityLabel()
     'test_entity_no_label' => array(
-      'name' => t('Test entity without label'),
+      'label' => t('Test entity without label'),
       'fieldable' => TRUE,
       'field cache' => FALSE,
       'base table' => 'test_entity',
@@ -90,7 +88,7 @@ function field_test_entity_info() {
       'view modes' => $test_entity_modes,
     ),
     'test_entity_label' => array(
-      'name' => t('Test entity label'),
+      'label' => t('Test entity label'),
       'fieldable' => TRUE,
       'field cache' => FALSE,
       'base table' => 'test_entity',
@@ -104,7 +102,7 @@ function field_test_entity_info() {
       'view modes' => $test_entity_modes,
     ),
     'test_entity_label_callback' => array(
-      'name' => t('Test entity label callback'),
+      'label' => t('Test entity label callback'),
       'fieldable' => TRUE,
       'field cache' => FALSE,
       'base table' => 'test_entity',
@@ -474,21 +472,3 @@ function field_test_entity_nested_form_submit($form, &$form_state) {
 
   drupal_set_message(t('test_entities @id_1 and @id_2 have been updated.', array('@id_1' => $entity_1->ftid, '@id_2' => $entity_2->ftid)));
 }
-
-/**
- * Controller class for the test_entity_bundle entity type.
- *
- * This extends the DrupalDefaultEntityController class, adding required
- * special handling for bundles (since they are not stored in the database).
- */
-class TestEntityBundleController extends DrupalDefaultEntityController {
-
-  protected function attachLoad(&$entities, $revision_id = FALSE) {
-    // Add bundle information.
-    foreach ($entities as $key => $entity) {
-      $entity->fttype = 'test_entity_bundle';
-      $entities[$key] = $entity;
-    }
-    parent::attachLoad($entities, $revision_id);
-  }
-}
