diff --git a/modules/salesforce_pull/salesforce_pull.module b/modules/salesforce_pull/salesforce_pull.module
index 8742bfb..1208e11 100644
--- a/modules/salesforce_pull/salesforce_pull.module
+++ b/modules/salesforce_pull/salesforce_pull.module
@@ -237,6 +237,13 @@ function salesforce_pull_process_records($sf_object) {
         if (isset($entity_info['entity keys']['bundle']) &&
           !empty($entity_info['entity keys']['bundle'])) {
           $values[$entity_info['entity keys']['bundle']] = $sf_mapping->drupal_bundle;
+
+          // Because creating term via entities actually needs vid and won't be
+          // fixed in Entity API (https://www.drupal.org/node/1409256).
+          if (isset($values['vocabulary_machine_name'])) {
+            $vocabulary = taxonomy_vocabulary_machine_name_load($values['vocabulary_machine_name']);
+            $values['vid'] = $vocabulary->vid;
+          }
         }
         else {
           // Not all entities will have bundle defined under entity keys,
