diff --git contrib/location_cck/location_cck.module contrib/location_cck/location_cck.module
index ba1a592..a5bcc77 100644
--- contrib/location_cck/location_cck.module
+++ contrib/location_cck/location_cck.module
@@ -162,6 +162,17 @@ function location_cck_field_insert($entity_type, $entity, $field, $instance, $la
       );
       location_save_locations($items, $criteria);
     }
+  }else{
+    if (!empty($items)) {
+      list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
+      // Store instances of locations by field name and vid.
+      $criteria = array(
+        'genid' => 'field:' . $field['field_name'] . ':' . $entity_type . ':' . $id,
+        'vid' => $vid ? $vid : $id,
+        'nid' => $id,
+      );
+      location_save_locations($items, $criteria);
+    }
   }
 }
 
@@ -179,6 +190,17 @@ function location_cck_field_update($entity_type, $entity, $field, $instance, $la
       );
       location_save_locations($items, $criteria);
     }
+  }else{
+    if (!empty($items)) {
+      list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
+      // Store instances of locations by field name and vid.
+      $criteria = array(
+        'genid' => 'field:' . $field['field_name'] . ':' . $entity_type . ':' . $id,
+        'vid' => $vid ? $vid : $id,
+        'nid' => $id,
+      );
+      location_save_locations($items, $criteria);
+    }
   }
 }
 
@@ -199,6 +221,11 @@ function location_cck_field_delete($entity_type, $entity, $field, $instance, $la
       $locs = array();
       location_save_locations($locs, array('genid' => $genid));
     }
+  }else {
+    list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
+    $genid = 'field:' . $field['field_name'] . ':' . $entity_type . ':' . $id;
+    $locs = array();
+    location_save_locations($locs, array('genid' => $genid));
   }
 }
 
@@ -210,6 +237,11 @@ function location_cck_field_delete_revision($entity_type, $entity, $field, $inst
     $genid = 'cck:' . $field['field_name'] . ':' . $entity->vid;
     $locs = array();
     location_save_locations($locs, array('genid' => $genid));
+  } else {
+    list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
+    $genid = 'field:' . $field['field_name'] . ':' . $entity_type . ':' . $id;
+    $locs = array();
+    location_save_locations($locs, array('genid' => $genid));
   }
 }
 
@@ -224,7 +256,6 @@ function location_cck_field_validate($entity_type, $entity, $field, $instance, $
  * Implement hook_field_load().
  */
 function location_cck_field_load($entity_type, $entities, $field, $instances, $langcode, &$items, $age) {
-  if ($entity_type == 'node') {
     foreach ($entities as $id => $entity) {
       foreach ($items[$id] as $delta => $item) {
         $location = array();
@@ -238,7 +269,6 @@ function location_cck_field_load($entity_type, $entities, $field, $instances, $l
         $items[$id][$delta] = array_merge($location, $item);
       }
     }
-  }
 }
 
 /**
