=== modified file 'ca/ca.module'
--- ca/ca.module	2009-04-13 14:26:56 +0000
+++ ca/ca.module	2009-05-15 19:58:06 +0000
@@ -156,10 +156,6 @@
  *   TRUE or FALSE indicating if at least one predicate was evaluated.
  */
 function ca_pull_trigger() {
-  // Trigger actions can pull other triggers. Lock predicates when they are
-  // marked for evaluation so they can't be evaluated again.
-  static $locked;
-
   $args = func_get_args();
   $trigger = array_shift($args);
 
@@ -189,17 +185,11 @@
 
   // Loop through the predicates and evaluate them one by one.
   foreach ($predicates as $pid => $predicate) {
-    // Prevent the predicate from being evaluated if it already has been with
-    // the same arguments.
-    $key = $pid . serialize($arguments);
-    if (!isset($locked[$key])) {
-      // If all of a predicate's conditions evaluate to TRUE...
-      if (ca_evaluate_conditions($predicate, $arguments)) {
-        // Then perform its actions.
-        ca_perform_actions($predicate, $arguments);
-      }
+    // If all of a predicate's conditions evaluate to TRUE...
+    if (ca_evaluate_conditions($predicate, $arguments)) {
+      // Then perform its actions.
+      ca_perform_actions($predicate, $arguments);
     }
-    $locked[$key] = TRUE;
   }
 
   return TRUE;

