diff --git a/context.plugins.inc b/context.plugins.inc
index 38ee2e5..cc12580 100644
--- a/context.plugins.inc
+++ b/context.plugins.inc
@@ -82,8 +82,8 @@ function _context_context_registry() {
   }
   if (module_exists('taxonomy')) {
     $registry['conditions']['node_taxonomy'] = array(
-      'title' => t('Taxonomy'),
-      'description' => t('Set this context when viewing a node with the selected taxonomy terms.'),
+      'title' => t('Taxonomy Term ID'),
+      'description' => t('Set this context when viewing a node with the selected taxonomy term.'),
       'plugin' => 'context_condition_node_taxonomy',
     );
     $registry['conditions']['taxonomy_term'] = array(
diff --git a/plugins/context_condition_node_taxonomy.inc b/plugins/context_condition_node_taxonomy.inc
index cfb214f..43ad56b 100644
--- a/plugins/context_condition_node_taxonomy.inc
+++ b/plugins/context_condition_node_taxonomy.inc
@@ -9,32 +9,21 @@ class context_condition_node_taxonomy extends context_condition_node {
     if (module_exists('taxonomy')) {
       foreach (taxonomy_get_vocabularies() as $vocab) {
         if (empty($vocab->tags)) {
-          foreach (taxonomy_get_tree($vocab->vid) as $term) {
-            $values[$term->tid] = check_plain($term->name);
-          }
+          $values += db_query("SELECT tid, name FROM {taxonomy_term_data} WHERE vid = :vid", array(':vid' => $vocab->vid))->fetchAllKeyed();
         }
       }
+      foreach ($values as $tid => $name) {
+        $values[$tid] = check_plain($name);
+      }
     }
     return $values;
   }
 
   function condition_form($context) {
     $form = parent::condition_form($context);
-    $form['#type'] = 'select';
-    $form['#size'] = 12;
-    $form['#multiple'] = TRUE;
-    $vocabularies = taxonomy_get_vocabularies();
-    $options = array();
-    foreach ($vocabularies as $vid => $vocabulary) {
-      $tree = taxonomy_get_tree($vid);
-      if ($tree && (count($tree) > 0)) {
-        $options[$vocabulary->name] = array();
-        foreach ($tree as $term) {
-          $options[$vocabulary->name][$term->tid] = str_repeat('-', $term->depth) . $term->name;
-        }
-      }
-    }
-    $form['#options'] = $options;
+    $form['#type'] = 'textfield';
+    $form['#size'] = 5;
+    $form['#element_validate'][] = 'element_validate_integer_positive';
     return $form;
   }
 
