diff --git a/inline_entity_form.module b/inline_entity_form.module
index be41f13..e195d68 100644
--- a/inline_entity_form.module
+++ b/inline_entity_form.module
@@ -1483,3 +1483,36 @@ function inline_entity_form_pre_render_add_fieldset_markup($form) {
 
   return $form;
 }
+
+/**
+ * Implements hook_field_attach_presave().
+ * 
+ * Avoid autocreate multiplication of terms for taxonomy term fields
+ * with Autocomplete term widget (tagging).
+ */
+function inline_entity_form_field_attach_presave($entity_type, $entity) {
+  $cache = &drupal_static(__FUNCTION__, array());
+  // Only for taxonomy terms entities with no tid and description set (autocomplete autocreation).
+  if ($entity_type == 'taxonomy_term' && !isset($entity->tid) && !isset($entity->description)) {
+    $term_name = drupal_strtolower(trim($entity->name));
+    $cid = $term_name . '-' . $entity->vid;
+    if (isset($cache[$cid])) {
+      $entity->name = $cache[$cid]['name'];
+      $entity->tid = $cache[$cid]['tid'];
+    }
+    else {
+      $term = db_select('taxonomy_term_data', 't')
+        ->fields('t', array('tid', 'name'))
+        ->condition('t.vid', $entity->vid)
+        ->condition('t.name', $term_name)
+        ->execute()
+        ->fetchAssoc();
+
+      if (!empty($term)) {
+        $cache[$cid] = $term;
+        $entity->name = $term['name'];
+        $entity->tid = $term['tid'];
+      }
+    }
+  }
+}
