diff --git a/display_cache.module b/display_cache.module
index 30f8140..6f604ab 100644
--- a/display_cache.module
+++ b/display_cache.module
@@ -283,14 +283,16 @@ function display_cache_view_entity($entities, $view_mode, $langcode, $entity_typ
     // Disable display_cache by global setting.
     if (variable_get('display_cache_disable', FALSE) === FALSE) {
       $entity_info = entity_get_info($entity_type);
+      // Try to find a bundle key from the entity info.
       if (!empty($entity_info['entity keys']['bundle'])) {
         $bundle_key = $entity_info['entity keys']['bundle'];
       }
-      else {
+      elseif (!empty($entity_info['bundle keys']['bundle'])) {
         $bundle_key = $entity_info['bundle keys']['bundle'];
       }
 
-      $bundle = $entity->{$bundle_key};
+      // This entity may not have a bundle key, fallback to the entity type.
+      $bundle = (isset($bundle_key) && !empty($entity->{$bundle_key})) ? $entity->{$bundle_key} : $entity_type;
       $settings = display_cache_get_settings($entity_type, $bundle, $view_mode);
 
       if ($settings['default']['use'] == DISPLAY_CACHE_ENABLED) {
