diff --git a/entityreference_migration.drush.inc b/entityreference_migration.drush.inc
index 2010a8c..0ef19b5 100644
--- a/entityreference_migration.drush.inc
+++ b/entityreference_migration.drush.inc
@@ -50,7 +50,11 @@ function drush_entityreference_migration_references($field_name = '') {
       array('type'=>'user_reference'),
       array('include_inactive' => TRUE, 'include_deleted' => TRUE)
     );
-    $field_infos = $node_field_infos + $user_field_infos;
+    $term_field_infos = field_read_fields(
+      array('type'=>'taxonomy_term_reference'),
+      array('include_inactive' => TRUE, 'include_deleted' => TRUE)
+    );
+    $field_infos = $node_field_infos + $user_field_infos + $term_field_infos;
   }
   
   $batch = array(
@@ -95,7 +99,7 @@ function _drush_entityreference_migration_batches_finished($success, $results, $
 function _drush_entityreference_migration_references_field($field_key, $field_info, &$context) {
   drush_print(dt("Processing @field_name", array('@field_name' => $field_info['field_name'])));
 
-  if (!in_array($field_info['type'], array('node_reference', 'user_reference'))) {
+  if (!in_array($field_info['type'], array('node_reference', 'user_reference', 'taxonomy_term_reference'))) {
     drush_set_error(dt("Field @field is not a references field.", array('@field' => $field_name)));
   }
   else {
diff --git a/entityreference_migration.module b/entityreference_migration.module
index 0fb27a4..ad08055 100644
--- a/entityreference_migration.module
+++ b/entityreference_migration.module
@@ -28,8 +28,12 @@ function entityreference_migration_migrate_references_fields($form, &$form_state
     array('type'=>'user_reference'),
     array('include_inactive' => TRUE, 'include_deleted' => TRUE)
   );
+  $term_field_infos = field_read_fields(
+    array('type'=>'taxonomy_term_reference'),
+    array('include_inactive' => TRUE, 'include_deleted' => TRUE)
+  );
 
-  $field_infos = $node_field_infos + $user_field_infos;
+  $field_infos = $node_field_infos + $user_field_infos + $term_field_infos;
 
   if (count($field_infos) > 0) {
     $field_options = array();
@@ -161,7 +165,7 @@ function _entityreference_migration_purge_references_field($field_key, $field_in
 function _entityreference_migration_migrate_temporary_references_field($field_key, $field_info, $field_name, $field_instances, $table_name, $temp_table_name, &$context) {
   $context['message'] = t("Processing @field_name", array('@field_name' => $field_info['field_name']));
 
-  if (!in_array($field_info['type'], array('node_reference', 'user_reference'))) {
+  if (!in_array($field_info['type'], array('node_reference', 'user_reference', 'taxonomy_term_reference'))) {
     drupal_set_message(t("Field @field is not a references field.", array('@field' => $field_name)), 'error');
   }
   else {
@@ -200,7 +204,15 @@ function _entityreference_migration_references_field_to_entityreference_field($f
     $insert = db_insert($context['sandbox']['entityreference_table_name']);
     $insert_revision = db_insert($context['sandbox']['entityreference_revision_table_name']);
     foreach ($results as $key => $result) {
-      $target_id_field = $field_name . (($field_info['type'] == 'node_reference') ? '_nid' : '_uid');
+      if ($field_info['type'] == 'node_reference') {
+          $target_id_field = $field_name . '_nid';
+      }
+      else if ($field_info['type'] == 'user_reference') {
+          $target_id_field = $field_name . '_uid';
+      }
+      else if ($field_info['type'] == 'taxonomy_term_reference') {
+          $target_id_field = $field_name . '_tid';
+      }
       $result[$field_name . '_target_id'] = $result[$target_id_field];
       unset($result[$target_id_field]);
 
@@ -237,8 +249,23 @@ function _entityreference_migration_references_field_to_entityreference_field_cr
   $field_name = $field_info['field_name'];
   // Recreate fields by using entityreference.
   $target_bundles = array();
-  if (isset($field_info['settings']['referenceable_types'])) {
-    $target_bundles = array_filter($field_info['settings']['referenceable_types']);
+  $field_type = $field_info['type'];
+  if ($field_type == 'node_reference') {
+      $target_type = 'node';
+    if (isset($field_info['settings']['referenceable_types'])) {
+      $target_bundles = array_filter($field_info['settings']['referenceable_types']);
+    }
+  }
+  else if ($field_type == 'user_reference') {
+      $target_type = 'user';
+    if (isset($field_info['settings']['referenceable_types'])) {
+      $target_bundles = array_filter($field_info['settings']['referenceable_types']);
+    }
+  }
+  else if ($field_type == 'taxonomy_term_reference') {
+      $target_type = 'taxonomy_term';
+      $bundle = $field_info['settings']['allowed_values'][0]['vocabulary'];
+      $target_bundles[$bundle] = $bundle;
   }
   $entityreference_field = array(
     'field_name' => $field_name,
@@ -257,7 +284,7 @@ function _entityreference_migration_references_field_to_entityreference_field_cr
         'target_bundles' => $target_bundles,
       ),
       'handler_submit' => 'Change handler',
-      'target_type' => (($field_info['type'] == 'node_reference') ? 'node' : 'user'),
+      'target_type' => $target_type,
     ),
     'cardinality' => $field_info['cardinality'],
     'locked' => $field_info['locked'],
