Index: ca/ca.admin.inc
===================================================================
--- ca/ca.admin.inc	(revision 270)
+++ ca/ca.admin.inc	(working copy)
@@ -13,6 +13,7 @@
 
   // Load all the module defined predicates into a temporary array.
   $temp = module_invoke_all('ca_predicate');
+  drupal_alter('ca_predicate', $temp);
 
   // Assign a default weight if need be.
   foreach ($temp as $key => $value) {
Index: ca/ca.module
===================================================================
--- ca/ca.module	(revision 270)
+++ ca/ca.module	(working copy)
@@ -253,6 +253,7 @@
 function ca_load_trigger_predicates($trigger, $all = FALSE) {
   // Load all the module defined predicates.
   $predicates = module_invoke_all('ca_predicate');
+  drupal_alter('ca_predicate', $predicates);
 
   // Loop through the module defined predicates to prepare the data - unsets
   // inactive predicates if $all == FALSE and adds a default weight if need be.
@@ -964,6 +965,7 @@
   else {
     // Otherwise look for it in the module defined predicates.
     $predicates = module_invoke_all('ca_predicate');
+    drupal_alter('ca_predicate', $predicates);
 
     if (!empty($predicates[$pid])) {
       $predicate = $predicates[$pid];
