diff --git a/includes/common.inc b/includes/common.inc
index 53cc2b9..39ce16f 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -7685,16 +7685,18 @@ function entity_get_info($entity_type = NULL) {
     $drupal_static_fast['entity_info'] = &drupal_static(__FUNCTION__);
   }
   $entity_info = &$drupal_static_fast['entity_info'];
+  if (!isset($entity_info['profile2_type'])) {
+    $entity_info = array();
+  }
 
   // hook_entity_info() includes translated strings, so each language is cached
   // separately.
   $langcode = $language->language;
 
   if (empty($entity_info)) {
-    if ($cache = cache_get("entity_info:$langcode")) {
-      $entity_info = $cache->data;
-    }
-    else {
+    $cache = cache_get("entity_info:$langcode");
+    $entity_info = $cache->data;
+    if (!isset($entity_info['profile2_type'])) {
       $entity_info = module_invoke_all('entity_info');
       // Merge in default values.
       foreach ($entity_info as $name => $data) {
