diff --git a/modules/salesforce_pull/salesforce_pull.module b/modules/salesforce_pull/salesforce_pull.module
index f036bad..bae3105 100644
--- a/modules/salesforce_pull/salesforce_pull.module
+++ b/modules/salesforce_pull/salesforce_pull.module
@@ -364,6 +364,52 @@ function salesforce_pull_process_updated_records($sf_object) {
       // Allow other modules to define or alter the mapping object.
       drupal_alter('salesforce_pull_mapping_object', $mapping_object, $sf_object, $sf_mapping);
       $exists = $mapping_object ? TRUE : FALSE;
+
+      // Try to get a drupal entity that would match based on the "key"
+      // fieldmap.
+      if (empty($exists)) {
+        $key_field = '';
+        $sf_key_name = '';
+        foreach ($sf_mapping->field_mappings as $field_mapping) {
+          if ($field_mapping['key']) {
+            $key_field = $field_mapping['drupal_field']['fieldmap_value'];
+            $sf_key_name = $field_mapping['salesforce_field']['name'];
+            break;
+          }
+        }
+
+        if (!empty($key_field) && !empty($sf_object[$sf_key_name])) {
+          $entity_info = entity_get_info($sf_mapping->drupal_entity_type);
+
+          $efq = new EntityFieldQuery();
+          $efq->entityCondition('entity_type', $sf_mapping->drupal_entity_type);
+          if (!empty($entity_info['entity keys']['bundle'])) {
+            $efq->entityCondition('bundle', $sf_mapping->drupal_bundle);
+          }
+          if (isset($entity_info['base table field types'][$key_field])) {
+            $efq->propertyCondition($key_field, $sf_object[$sf_key_name]);
+          }
+          else {
+            $efq->fieldCondition($key_field, 'value', $sf_object[$sf_key_name]);
+          }
+          $result = $efq->execute();
+
+          if (isset($result[$sf_mapping->drupal_entity_type])) {
+            $entity_key = array_keys($result[$sf_mapping->drupal_entity_type]);
+            $entity_id = reset($entity_key);
+
+            // Create mapping object.
+            $mapping_object = entity_create('salesforce_mapping_object', array(
+              'salesforce_id' => $sf_object['Id'],
+              'entity_type' => $sf_mapping->drupal_entity_type,
+              'entity_id' => $entity_id,
+              'entity_updated' => '',
+            ));
+            $exists = TRUE;
+          }
+        }
+      }
+
       if ($exists && ($sf_mapping->sync_triggers & SALESFORCE_MAPPING_SYNC_SF_UPDATE)) {
         try {
           $entity = entity_load_single($mapping_object->entity_type, $mapping_object->entity_id);
