=== modified file 'modules/field/field.info.inc'
--- modules/field/field.info.inc  2010-06-02 02:40:01 +0000
+++ modules/field/field.info.inc  2010-06-17 06:18:36 +0000
@@ -186,47 +186,47 @@ function _field_info_collate_fields($res
 
   if (!isset($info)) {
     if ($cached = cache_get('field_info_fields', 'cache_field')) {
-      $definitions = $cached->data;
+      $info = $cached->data;
     }
     else {
       $definitions = array(
         'field_ids' => field_read_fields(array(), array('include_deleted' => 1)),
         'instances' => field_read_instances(),
       );
-      cache_set('field_info_fields', $definitions, 'cache_field');
-    }
 
-    // Populate 'field_ids' with all fields.
-    $info['field_ids'] = array();
-    foreach ($definitions['field_ids'] as $key => $field) {
-      $info['field_ids'][$key] = $definitions['field_ids'][$key] = _field_info_prepare_field($field);
-    }
+      // Populate 'field_ids' with all fields.
+      $info['field_ids'] = array();
+      foreach ($definitions['field_ids'] as $key => $field) {
+        $info['field_ids'][$key] = $definitions['field_ids'][$key] = _field_info_prepare_field($field);
+      }
 
-    // Populate 'fields' only with non-deleted fields.
-    $info['fields'] = array();
-    foreach ($info['field_ids'] as $field) {
-      if (!$field['deleted']) {
-        $info['fields'][$field['field_name']] = $field;
+      // Populate 'fields' only with non-deleted fields.
+      $info['fields'] = array();
+      foreach ($info['field_ids'] as $field) {
+        if (!$field['deleted']) {
+          $info['fields'][$field['field_name']] = $field;
+        }
       }
-    }
 
-    // Populate 'instances'. Only non-deleted instances are considered.
-    $info['instances'] = array();
-    foreach (field_info_bundles() as $entity_type => $bundles) {
-      foreach ($bundles as $bundle => $bundle_info) {
-        $info['instances'][$entity_type][$bundle] = array();
+      // Populate 'instances'. Only non-deleted instances are considered.
+      $info['instances'] = array();
+      foreach (field_info_bundles() as $entity_type => $bundles) {
+        foreach ($bundles as $bundle => $bundle_info) {
+          $info['instances'][$entity_type][$bundle] = array();
+        }
       }
-    }
-    foreach ($definitions['instances'] as $instance) {
-      $field = $info['fields'][$instance['field_name']];
-      $instance = _field_info_prepare_instance($instance, $field);
-      $info['instances'][$instance['entity_type']][$instance['bundle']][$instance['field_name']] = $instance;
-      // Enrich field definitions with the list of bundles where they have
-      // instances. NOTE: Deleted fields in $info['field_ids'] are not
-      // enriched because all of their instances are deleted, too, and
-      // are thus not in $definitions['instances'].
-      $info['fields'][$instance['field_name']]['bundles'][$instance['entity_type']][] = $instance['bundle'];
-      $info['field_ids'][$instance['field_id']]['bundles'][$instance['entity_type']][] = $instance['bundle'];
+      foreach ($definitions['instances'] as $instance) {
+        $field = $info['fields'][$instance['field_name']];
+        $instance = _field_info_prepare_instance($instance, $field);
+        $info['instances'][$instance['entity_type']][$instance['bundle']][$instance['field_name']] = $instance;
+        // Enrich field definitions with the list of bundles where they have
+        // instances. NOTE: Deleted fields in $info['field_ids'] are not
+        // enriched because all of their instances are deleted, too, and
+        // are thus not in $definitions['instances'].
+        $info['fields'][$instance['field_name']]['bundles'][$instance['entity_type']][] = $instance['bundle'];
+        $info['field_ids'][$instance['field_id']]['bundles'][$instance['entity_type']][] = $instance['bundle'];
+      }
+      cache_set('field_info_fields', $info, 'cache_field');
     }
   }
 


