diff --git a/smartqueue.module b/smartqueue.module
index 93dce88..0882861 100644
--- a/smartqueue.module
+++ b/smartqueue.module
@@ -19,7 +19,7 @@ function smartqueue_taxonomy_nodequeue_form($queue, &$form) {
   $fields = field_info_fields();
   foreach ($fields as $field_name => $field) {
     if ($field['type'] == 'taxonomy_term_reference') {
-      $options[$field['id']] = t('Field %field-name, selecting terms from vocabulary %vocabulary.', array('%field-name' => $field_name, '%vocabulary' => $field['settings']['allowed_values'][0]['vocabulary']));
+      $options[$field_name] = t('Field %field-name, selecting terms from vocabulary %vocabulary.', array('%field-name' => $field_name, '%vocabulary' => $field['settings']['allowed_values'][0]['vocabulary']));
     }
   }
 
@@ -59,13 +59,13 @@ function smartqueue_taxonomy_nodequeue_form($queue, &$form) {
  */
 function smartqueue_taxonomy_nodequeue_form_validate($queue, &$form_state, &$form) {
   if (!isset($queue->qid)) {
-    $field_ids = array_keys(array_filter($form_state['values']['taxonomy_fields']));
-    if (empty($field_ids)) {
+    $field_names = array_keys(array_filter($form_state['values']['taxonomy_fields']));
+    if (empty($field_names)) {
       form_error($form['placeholder']['taxonomy_fields'], t('You must select at least one field.'));
     }
 
     // Convert this to our reference.
-    form_set_value($form['reference'], implode('-', $field_ids), $form_state);
+    form_set_value($form['reference'], implode('-', $field_names), $form_state);
   }
 }
 
@@ -110,22 +110,19 @@ function smartqueue_taxonomy_nodequeue_subqueues(&$queue, $node) {
 
   // Check if at least one supported field exists in node and load
   // selected tids.
-  foreach (explode('-', $queue->reference) as $field_id) {
-    // Load field data.
-    $field = field_info_field_by_id($field_id);
-
+  foreach (explode('-', $queue->reference) as $field_name) {
     // Save tids.
-    if ($field_values = field_get_items('node', $node, $field['field_name'])) {
-      $field_ids[$field_id] = array();
+    if ($field_values = field_get_items('node', $node, $field_name)) {
+      $field_names[$field_name] = array();
       foreach ($field_values as $field_value) {
-        $field_ids[$field_id][] = $field_value['tid'];
+        $field_names[$field_name][] = $field_value['tid'];
       }
     }
   }
 
-  if (!empty($field_ids) && $queue->use_parents) {
+  if (!empty($field_names) && $queue->use_parents) {
     // Replace taxonomy IDs with their parents'.
-    foreach ($field_ids as $field_id => &$tids) {
+    foreach ($field_names as $field_name => &$tids) {
       $tids = smartqueue_taxonomy_get_parents($tids);
     }
   }
@@ -133,12 +130,12 @@ function smartqueue_taxonomy_nodequeue_subqueues(&$queue, $node) {
   // Forbid NO terms being set, but allow
   // various non-terms to be set.
   $empty = TRUE;
-  foreach ($field_ids as $field_id => $tids) {
+  foreach ($field_names as $field_name => $tids) {
     if (!empty($tids)) {
       $empty = FALSE;
     }
-    if (!count($field_ids[$field_id])) {
-      $field_ids[$field_id][] = 0;
+    if (!count($field_names[$field_name])) {
+      $field_names[$field_name][] = 0;
     }
   }
 
@@ -147,7 +144,7 @@ function smartqueue_taxonomy_nodequeue_subqueues(&$queue, $node) {
   }
 
   // Build reference strings for all subqueues.
-  $references = smartqueue_build_string(array_filter($field_ids));
+  $references = smartqueue_build_string(array_filter($field_names));
 
   // We're returning an array of references for efficiency, but we also have
   // to check to see if the references we've generated exist. If they don't,
