diff --git a/supported/field.inc b/supported/field.inc
index 8f641ae..442d5cd 100644
--- a/supported/field.inc
+++ b/supported/field.inc
@@ -54,7 +54,7 @@ function field_user_import_after_save($settings, $account, $password, $fields, $
     $processor_function = $processors[$field_type]['save'];
 
     // Use callback function to process info for field before saving.
-    $processed_fields[$field_name] = $processor_function($user_fields, $field_name, $values);
+    $processed_fields[$field_name] = $processor_function($user_fields, $field_name, $values, $settings);
   }
 
   if (!empty($processed_fields)) {
@@ -64,7 +64,7 @@ function field_user_import_after_save($settings, $account, $password, $fields, $
   return;
 }
 
-function field_user_import_default_field_processor($user_fields, $field_name, $values) {
+function field_user_import_default_field_processor($user_fields, $field_name, $values, $settings) {
   // @todo deal with multiple values
   // @todo deal with language
   // @todo deal with updating existing account
@@ -78,6 +78,42 @@ function field_user_import_default_field_processor($user_fields, $field_name, $v
   return $field;
 }
 
+function field_user_import_taxonomy_field_processor($user_fields, $field_name, $values, $settings) {
+  // Import multiple taxonomy terms per field formatted as a "CSV within a CSV"
+
+  $field = $user_fields->$field_name;
+
+  // fgetcsv() preserves backslash escape characters, so strip them here
+  // Example: "first term,\"second, term\""
+  $values = str_getcsv(stripcslashes($values[0]), $settings['delimiter']);
+
+  for ($i = 0; $i < count($values); $i++) {
+    if(empty($values[$i])) {
+      continue; // Do not save empty fields
+    }
+
+    // Get taxonomy term ID before saving if term already exists
+    $field_info = field_info_field($field_name);
+    $vocabulary = $field_info['settings']['allowed_values'][0]['vocabulary'];
+    $tid = taxonomy_get_term_by_name($values[$i], $vocabulary);
+    if(empty($tid)) {
+      // Create a new taxonomy term
+      $field[LANGUAGE_NONE][$i]['tid'] = 'autocreate';
+      $field[LANGUAGE_NONE][$i]['vid'] = taxonomy_vocabulary_machine_name_load($vocabulary)->vid;
+      $field[LANGUAGE_NONE][$i]['name'] = $values[$i];
+      $field[LANGUAGE_NONE][$i]['description'] = '';
+      $field[LANGUAGE_NONE][$i]['format'] = 'plain_text';
+    }
+    else {
+      $field[LANGUAGE_NONE][$i]['tid'] = array_shift($tid)->tid;
+    }
+  }
+
+  flog_it($field);
+
+  return $field;
+}
+
 function field_user_import_supported_fields($output = 'all') {
   static $supported = array();
 
@@ -136,7 +172,7 @@ function field_user_import_supported_fields($output = 'all') {
 
     $supported['taxonomy_term_reference'] = array(
       'validate' => 'field_user_import_default_field_validator',
-      'save' => 'field_user_import_default_field_processor',
+      'save' => 'field_user_import_taxonomy_field_processor',
     );
 
     /** Unsupported for the moment **/
diff --git a/supported/user_import.inc b/supported/user_import.inc
index 30af61e..8ca3624 100644
--- a/supported/user_import.inc
+++ b/supported/user_import.inc
@@ -170,7 +170,7 @@ function _user_import_edit_settings_fields(&$form, $import, $collapsed) {
 	    '#title' => t('File Delimiter'),
 	    '#size' => 4,
 	    '#default_value' => isset($import['delimiter']) ? $import['delimiter'] : ',',
-	    '#description' => t("The column delimiter for the file. Use '/t' for Tab."),
+	    '#description' => t("The column delimiter for the file. Use '\\t' for Tab."),
 	);
 
   return;
diff --git a/user_import.admin.inc b/user_import.admin.inc
index 3d96080..15a64e6 100644
--- a/user_import.admin.inc
+++ b/user_import.admin.inc
@@ -330,7 +330,7 @@ function user_import_delimiter_form(&$form, $value = ',') {
       '#size' => 4,
       '#default_value' => $value,
       '#required' => TRUE,
-      '#description' => t("The column delimiter for the file. Use '/t' for Tab."),
+      '#description' => t("The column delimiter for the file. Use '\\t' for Tab."),
   );
 }
 
@@ -839,8 +839,8 @@ function user_import_form_field_match(&$form, $import) {
 function _user_import_file_row($filename, $handle, $delimiter = ',') {
 
 	// Handle folks who may list 'tab' as 't' or 'tab'
-	if (strtolower($delimiter) == 't' || strtolower($delimiter) == 'tab') {
-		$delimiter = '\t';
+	if (strtolower($delimiter) == 't' || strtolower($delimiter) == 'tab' || $delimiter == '\t' || $delimiter == '/t') {
+		$delimiter = "\t";
 	}
 
 	$data_row = @fgetcsv ($handle, 1000000, $delimiter);
