diff --git a/modules/salesforce_pull/salesforce_pull.module b/modules/salesforce_pull/salesforce_pull.module
index f8af62b..b2c53c8 100644
--- a/modules/salesforce_pull/salesforce_pull.module
+++ b/modules/salesforce_pull/salesforce_pull.module
@@ -312,6 +312,51 @@ function salesforce_pull_process_records($sf_object) {
     // Mapping object exists?
     $mapping_object = salesforce_mapping_object_load_by_sfid($sf_object['Id']);
     $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 ($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);
