diff --git a/sites/all/modules/context/plugins/context_condition_node_taxonomy.inc b/sites/all/modules/context/plugins/context_condition_node_taxonomy.inc
index cfb214f..dbfe376 100644
--- a/sites/all/modules/context/plugins/context_condition_node_taxonomy.inc
+++ b/sites/all/modules/context/plugins/context_condition_node_taxonomy.inc
@@ -6,15 +6,28 @@
 class context_condition_node_taxonomy extends context_condition_node {
   function condition_values() {
     $values = array();
-    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);
+
+    $cid = __CLASS__ . ':' . __FUNCTION__;
+    
+    if (!empty($values)) {
+      continue;
+    }
+    elseif ($cached = cache_get($cid, 'cache')) {
+      $values = $cached->data;
+    } 
+    else {
+      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);
+            }
           }
         }
       }
+      cache_set($cid, $values, 'cache');
     }
+    
     return $values;
   }
 
@@ -24,8 +37,18 @@ class context_condition_node_taxonomy extends context_condition_node {
     $form['#size'] = 12;
     $form['#multiple'] = TRUE;
     $vocabularies = taxonomy_get_vocabularies();
-    $options = array();
-    foreach ($vocabularies as $vid => $vocabulary) {
+    static $options = array();
+    $cid = __CLASS__ . ':' . __FUNCTION__;
+    
+    // Check the static cache
+    if (!empty($options)) {
+      continue;
+    }
+    elseif ($cached = cache_get($cid, 'cache')) {
+      $options = $cached->data;
+    } 
+    else {
+      foreach ($vocabularies as $vid => $vocabulary) {
       $tree = taxonomy_get_tree($vid);
       if ($tree && (count($tree) > 0)) {
         $options[$vocabulary->name] = array();
@@ -34,6 +57,9 @@ class context_condition_node_taxonomy extends context_condition_node {
         }
       }
     }
+      cache_set($cid, $options, 'cache');
+    }
+
     $form['#options'] = $options;
     return $form;
   }
