--- modules/trigger/trigger.admin.inc.orig 2008-09-10 17:49:21.000000000 +0200 +++ modules/trigger/trigger.admin.inc 2008-09-10 17:46:38.000000000 +0200 @@ -81,8 +81,20 @@ function trigger_unassign_submit($form, &$form_state) { $form_values = $form_state['values']; if ($form_values['confirm'] == 1) { + $hook = $form_values['hook']; + $op = $form_values['operation']; $aid = actions_function_lookup($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 module will not find actions that no longer exists + // even though they may still assigned + if (!$aid) { + $trgactions = _trigger_get_hook_actions($hook, $op); + foreach ($trgactions as $trgaid => $description) { + if (md5($trgaid) === $form_values['aid']) { + $aid = $trgaid; + } + } + } + db_query("DELETE FROM {trigger_assignments} WHERE hook = '%s' AND op = '%s' AND aid = '%s'", $hook, $op, $aid); $actions = actions_get_all_actions(); watchdog('actions', 'Action %action has been unassigned.', array('%action' => check_plain($actions[$aid]['description']))); drupal_set_message(t('Action %action has been unassigned.', array('%action' => $actions[$aid]['description'])));