diff --git a/relation_migrate/relation_migrate.migration.inc b/relation_migrate/relation_migrate.migration.inc
index 9fe3e99..8198c3b 100644
--- a/relation_migrate/relation_migrate.migration.inc
+++ b/relation_migrate/relation_migrate.migration.inc
@@ -39,6 +39,11 @@ abstract class RelationMigrateReference extends Migration {
           'unsigned' => TRUE,
           'not null' => TRUE,
         ),
+        'delta' => array(
+          'type' => 'int',
+          'unsigned' => TRUE,
+          'not null' => TRUE,
+        ),
       ),
       MigrateDestinationRelation::getKeySchema()
     );
diff --git a/relation_migrate/relation_migrate.source.inc b/relation_migrate/relation_migrate.source.inc
index 69a097b..033cb1d 100644
--- a/relation_migrate/relation_migrate.source.inc
+++ b/relation_migrate/relation_migrate.source.inc
@@ -89,7 +89,7 @@ abstract class MigrateSourceReference extends MigrateSource {
 
       if (!empty($field_info) && $field_info['type'] == $this->field_type) {
         $field_data = db_select('field_data_' . $field_name, 'f')
-          ->fields('f', array('entity_type', 'entity_id', $field_name . '_' . $columns[0]))
+          ->fields('f', array('entity_type', 'entity_id', 'delta', $field_name . '_' . $columns[0]))
           ->condition('deleted', 0);
         $field_data->addExpression(":name", 'field_name', array(':name' => $field_name));
         $field_data = $field_data->execute()->fetchAll();
@@ -118,6 +118,7 @@ abstract class MigrateSourceReference extends MigrateSource {
         'destination_type' => $destination_type,
         'destination_id' => $item->{$id_key},
         'field_name' => $field_name,
+        'delta' => $item->delta,
       );
 
       return (object)$ret;
diff --git a/relation_migrate/tests/relation.migrate.test b/relation_migrate/tests/relation.migrate.test
index 944e02c..b92405e 100644
--- a/relation_migrate/tests/relation.migrate.test
+++ b/relation_migrate/tests/relation.migrate.test
@@ -268,5 +268,23 @@
     $this->assertRaw('<td><a href="' . url('node/' . $this->node3->nid) . '">' . $this->node3->title . '</a> -> <a href="' . url('node/' . $this->node3->nid) . '">' . $this->node3->title . '</a></td>', t('Entity reference migrated successfully.'));
     $this->assertRaw('<td><a href="' . url('node/' . $this->node4->nid) . '">' . $this->node4->title . '</a> -> <a href="' . url('node/' . $this->node2->nid) . '">' . $this->node2->title . '</a></td>', t('Entity reference migrated successfully.'));
     $this->assertRaw('<td><a href="' . url('node/' . $this->node5->nid) . '">' . $this->node5->title . '</a> -> <a href="' . url('node/' . $this->node1->nid) . '">' . $this->node1->title . '</a></td>', t('Entity reference migrated successfully.'));
+
+    // Test if duplicated relations get migrated properly - add one first
+    $this->node1->field_tags[LANGUAGE_NONE][1]['tid'] = $this->tag->tid;
+    node_save($this->node1);
+
+    // Check if new reference appeared and migrate it to relation.
+    $this->drupalGet('admin/content/migrate');
+    $this->assertRaw('RelationMigrateTermReference</a></td><td>6</td><td>5</td><td>1</td>', t('There is 1 new row to be migrated from Term reference.'));
+
+    $this->drupalPost(
+      "admin/content/migrate",
+      array(
+        'dashboard[RelationMigrateTermReference]' => TRUE,
+      ),
+      t('Execute')
+    );
+    $this->drupalGet('admin/content/migrate');
+    $this->assertRaw('RelationMigrateTermReference</a></td><td>6</td><td>6</td><td>0</td>', t('6 rows were successfully migrated from Term reference.'));
   }
- }
\ No newline at end of file
+}
