Index: includes/actions.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/actions.inc,v
retrieving revision 1.9
diff -u -u -p -r1.9 actions.inc
--- includes/actions.inc	17 Feb 2008 22:15:04 -0000	1.9
+++ includes/actions.inc	8 Apr 2008 14:46:59 -0000
@@ -236,7 +236,7 @@ function actions_function_lookup($hash) 
   }
 
   // Must be an instance; must check database.
-  $aid = db_result(db_query("SELECT aid FROM {actions} WHERE MD5(aid) = '%s' AND parameters != ''", $hash));
+  $aid = db_result(db_query("SELECT callback FROM {actions} WHERE MD5(aid) = '%s' AND parameters != ''", $hash));
   return $aid;
 }
 
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.954
diff -u -u -p -r1.954 node.module
--- modules/node/node.module	6 Apr 2008 18:50:12 -0000	1.954
+++ modules/node/node.module	8 Apr 2008 14:46:59 -0000
@@ -2571,6 +2571,7 @@ function node_action_info() {
       'type' => 'node',
       'description' => t('Unpublish post containing keyword(s)'),
       'configurable' => TRUE,
+      'behavior' => array('changes_node_property'),
       'hooks' => array(
         'nodeapi' => array('presave', 'insert', 'update'),
       ),
Index: modules/trigger/trigger.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/trigger/trigger.admin.inc,v
retrieving revision 1.5
diff -u -u -p -r1.5 trigger.admin.inc
--- modules/trigger/trigger.admin.inc	8 Jan 2008 10:35:43 -0000	1.5
+++ modules/trigger/trigger.admin.inc	8 Apr 2008 14:46:59 -0000
@@ -65,7 +65,7 @@ function trigger_unassign($form_state, $
     '#value' => $aid,
   );
 
-  $action = actions_function_lookup($aid);
+  $action = db_result(db_query("SELECT aid FROM {actions} WHERE MD5(aid) = '%s'", $aid));
   $actions = actions_get_all_actions();
 
   $destination = 'admin/build/trigger/'. ($hook == 'nodeapi' ? 'node' : $hook);
@@ -81,7 +81,7 @@ function trigger_unassign($form_state, $
 function trigger_unassign_submit($form, &$form_state) {
   $form_values = $form_state['values'];
   if ($form_values['confirm'] == 1) {
-    $aid = actions_function_lookup($form_values['aid']);
+    $aid = db_result(db_query("SELECT aid FROM {actions} WHERE MD5(aid) = '%s'", $form_values['aid']));
     db_query("DELETE FROM {trigger_assignments} WHERE hook = '%s' AND op = '%s' AND aid = '%s'", $form_values['hook'], $form_values['operation'], $aid);
     $actions = actions_get_all_actions();
     watchdog('actions', 'Action %action has been unassigned.',  array('%action' => check_plain($actions[$aid]['description'])));
@@ -187,7 +187,7 @@ function trigger_assign_form($form_state
 function trigger_assign_form_validate($form, $form_state) {
   $form_values = $form_state['values'];
   if (!empty($form_values['aid'])) {
-    $aid = actions_function_lookup($form_values['aid']);
+    $aid = db_result(db_query("SELECT aid FROM {actions} WHERE MD5(aid) = '%s'", $form_values['aid']));
     if (db_result(db_query("SELECT aid FROM {trigger_assignments} WHERE hook = '%s' AND op = '%s' AND aid = '%s'", $form_values['hook'], $form_values['operation'], $aid))) {
       form_set_error($form_values['operation'], t('The action you chose is already assigned to that trigger.'));
     }
@@ -201,13 +201,14 @@ function trigger_assign_form_submit($for
   $form_values = $form_state['values'];
 
   if (!empty($form_values['aid'])) {
-    $aid = actions_function_lookup($form_values['aid']);
+    $callback = actions_function_lookup($form_values['aid']);
+    $aid = db_result(db_query("SELECT aid FROM {actions} WHERE MD5(aid) = '%s'", $form_values['aid']));
     $weight = db_result(db_query("SELECT MAX(weight) FROM {trigger_assignments} WHERE hook = '%s' AND op = '%s'", $form_values['hook'], $form_values['operation']));
     db_query("INSERT INTO {trigger_assignments} values ('%s', '%s', '%s', %d)", $form_values['hook'], $form_values['operation'], $aid, $weight + 1);
     // If this action changes a node property, we need to save the node
     // so the change will persist.
     $actions = actions_list();
-    if (isset($actions[$aid]['behavior']) && in_array('changes_node_property', $actions[$aid]['behavior']) && ($form_values['operation'] != 'presave')) {
+    if (isset($actions[$callback]['behavior']) && in_array('changes_node_property', $actions[$callback]['behavior']) && ($form_values['operation'] != 'presave')) {
       // Delete previous node_save_action if it exists, and re-add a new one at a higher weight.
       $save_post_action_assigned = db_result(db_query("SELECT aid FROM {trigger_assignments} WHERE hook = '%s' AND op = '%s' AND aid = 'node_save_action'", $form_values['hook'], $form_values['operation']));
       if ($save_post_action_assigned) {
