diff --git a/entityreference_migration.drush.inc b/entityreference_migration.drush.inc
index 789edf9..693f7f2 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(
@@ -81,7 +85,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.info b/entityreference_migration.info
index a26f7cb..0eeb1e4 100644
--- a/entityreference_migration.info
+++ b/entityreference_migration.info
@@ -1,5 +1,5 @@
 name = "Reference to EntityReference Field Migration"
-description = "Migrate references fields (node reference, user reference) to entity reference fields."
+description = "Migrate references fields (node reference, user reference, taxonomy term reference) to entity reference fields."
 package = Fields
 core = 7.x
 dependencies[] = entityreference
diff --git a/entityreference_migration.module b/entityreference_migration.module
index 0f740d6..6a98a71 100644
--- a/entityreference_migration.module
+++ b/entityreference_migration.module
@@ -28,8 +28,11 @@ function entityreference_migration_migrate_references_fields($form, &$form_state
     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;
 
   if (count($field_infos) > 0) {
     $field_options = array();
@@ -45,7 +48,7 @@ function entityreference_migration_migrate_references_fields($form, &$form_state
         $options_instances[] = $instance['entity_type'] .':'. $instance['bundle'] .' ('. check_plain($instance['label']) .')';
       }
       $translate_array['@instances'] = implode(', ', $options_instances);
-      $field_options[$key] = t('@field_name: Appears in [@instances]', $translate_array);
+      $field_options[$key] = t($field_info['type'] . ' @field_name: Appears in [@instances]', $translate_array);
     }
 
     $form['field_information'] = array(
@@ -101,7 +104,7 @@ function _entityreference_migration_batches_finished($success, $results, $operat
 function _entityreference_migration_references_field($field_key, $field_info, &$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 {
@@ -162,8 +165,20 @@ function _entityreference_migration_references_field_to_entityreference_field($f
     $views = views_get_all_views(TRUE);
     foreach ($views as $view) {
       // Let us first try with arguments.
-      $current_argument_field = $field_name . (($field_info['type'] == 'node_reference') ? '_nid' : '_uid');
-      $new_argument_field = $field_name .'_target_id';
+      switch ($field_info['type']) {
+        case 'node_reference':
+          $current_argument_field = $field_name . '_nid';
+          $new_argument_field = $field_name .'_target_id';
+          break;
+        case 'user_reference':
+          $current_argument_field = $field_name . '_uid';
+          $new_argument_field = $field_name .'_target_id';
+          break;
+        case 'taxonomy_term_reference':
+          $current_argument_field = $field_name . '_tid';
+          $new_argument_field = $field_name .'_target_id';
+          break;
+      }
       foreach ($view->display as $display_key => $display) {
         if (!empty($display->display_options['arguments'])) {
           foreach ($display->display_options['arguments'] as $argument_key => $argument) {
@@ -217,8 +232,20 @@ function _entityreference_migration_references_field_to_entityreference_field($f
     $insert = db_insert($entityreference_table_name);
     $insert_revision = db_insert($entityreference_revision_table_name);
     foreach ($results as $key => $result) {
-      $target_id_field = $field_name . (($field_info['type'] == 'node_reference') ? '_nid' : '_uid');
-      $result[$field_name . '_target_id'] = $result[$target_id_field];
+      switch ($field_info['type']) {
+        case 'node_reference':
+          $target_id_field = $field_name . '_nid';
+          $result[$field_name . '_target_id'] = $result[$target_id_field];
+          break;
+        case 'user_reference':
+          $target_id_field = $field_name . '_uid';
+          $result[$field_name . '_target_id'] = $result[$target_id_field];
+          break;
+        case 'taxonomy_term_reference':
+          $target_id_field = $field_name . '_tid';
+          $result[$field_name . '_target_id'] = $result[$target_id_field];
+          break;
+      }
       unset($result[$target_id_field]);
 
       if ($key) {
@@ -253,6 +280,17 @@ function _entityreference_migration_references_field_to_entityreference_field_cr
   if (isset($field_info['settings']['referenceable_types'])) {
     $target_bundles = array_filter($field_info['settings']['referenceable_types']);
   }
+  switch ($field_info['type']) {
+    case 'node_reference':
+      $target_type = 'node';
+      break;
+    case 'user_reference':
+      $target_type = 'user';
+      break;
+    case 'taxonomy_term_reference':
+      $target_type = 'taxonomy_term';
+      break;
+  }
   $entityreference_field = array(
     'field_name' => $field_name,
     'type' => 'entityreference',
@@ -270,7 +308,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'],
@@ -310,6 +348,8 @@ function _entityreference_migration_references_field_to_entityreference_field_cr
     );
   }
   // Add in the display and appropriate settings
+  // @TODO: special case for taxonomy_term_reference fields?
+  // @TODO: add term type for taxonomy_term_reference 
   if (isset($instance['display'])) {
     foreach ($instance['display'] as $display_name => $instance_display) {
       $entityreference_instance['display'][$display_name] = array(
diff --git a/entityreference_migration.php b/entityreference_migration.php
index 0358bfd..cba1736 100644
--- a/entityreference_migration.php
+++ b/entityreference_migration.php
@@ -16,7 +16,12 @@ $user_field_infos = field_read_fields(
   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;
+
 foreach ($field_infos as $key => $field_info) {
   $field_name = $field_info['field_name'];
 
@@ -79,6 +84,17 @@ foreach ($field_infos as $key => $field_info) {
   if (isset($field_info['settings']['referenceable_types'])) {
     $target_bundles = array_filter($field_info['settings']['referenceable_types']);
   }
+  switch ($field_info['type']) {
+    case 'node_reference':
+      $target_type = 'node';
+      break;
+    case 'user_reference':
+      $target_type = 'user';
+      break;
+    case 'taxonomy_term_reference':
+      $target_type = 'taxonomy_term';
+      break;
+  }
   $entityreference_field = array(
     'field_name' => $field_name,
     'type' => 'entityreference',
@@ -97,7 +113,7 @@ foreach ($field_infos as $key => $field_info) {
         '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'],
@@ -146,8 +162,20 @@ foreach ($field_infos as $key => $field_info) {
     $insert = db_insert($entityreference_table_name);
     $insert_revision = db_insert($entityreference_revision_table_name);
     foreach ($results as $key => $result) {
-      $target_id_field = $field_name . (($field_info['type'] == 'node_reference') ? '_nid' : '_uid');
-      $result[$field_name . '_target_id'] = $result[$target_id_field];
+      switch ($field_info['type']) {
+        case 'node_reference':
+          $target_id_field = $field_name . '_nid';
+          $result[$field_name . '_target_id'] = $result[$target_id_field];
+          break;
+        case 'user_reference':
+          $target_id_field = $field_name . '_uid';
+          $result[$field_name . '_target_id'] = $result[$target_id_field];
+          break;
+        case 'taxonomy_term_reference':
+          $target_id_field = $field_name . '_tid';
+          $result[$field_name . '_target_id'] = $result[$target_id_field];
+          break;
+      }
       $result[$field_name . '_target_type'] = $entityreference_field['settings']['target_type'];
       unset($result[$target_id_field]);
 
