Index: includes/actions.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/actions.inc,v
retrieving revision 1.8.2.5
diff -u -p -r1.8.2.5 actions.inc
--- includes/actions.inc	16 Oct 2008 12:45:53 -0000	1.8.2.5
+++ includes/actions.inc	5 Dec 2008 00:03:14 -0000
@@ -69,8 +69,8 @@ function actions_do($action_ids, &$objec
       // Strip off leading 'OR '.
       $where_clause = '('. strstr($where_clause, " ") .')';
       $result_db = db_query('SELECT * FROM {actions} WHERE '. $where_clause, $where_values);
-      while ($action = db_fetch_object($result_db)) {
-        $actions[$action->aid] = $action->parameters ? unserialize($action->parameters) : array();
+      while ($action = action_unpack(db_fetch_object($result_db))) {
+        $actions[$action->aid] = $action->parameters;
         $actions[$action->aid]['callback'] = $action->callback;
         $actions[$action->aid]['type'] = $action->type;
       }
@@ -93,9 +93,9 @@ function actions_do($action_ids, &$objec
   else {
     // If it's a configurable action, retrieve stored parameters.
     if (is_numeric($action_ids)) {
-      $action = db_fetch_object(db_query("SELECT * FROM {actions} WHERE aid = '%s'", $action_ids));
+      $action = actions_load($actions_ids);
       $function = $action->callback;
-      $context = array_merge($context, unserialize($action->parameters));
+      $context = array_merge($context, $action->parameters);
       $result[$action_ids] = $function($object, $context, $a1, $a2);
     }
     // Singleton action; $action_ids is the function name.
@@ -350,7 +350,22 @@ function actions_save($function, $type, 
  *   The appropriate action row from the database as an object.
  */
 function actions_load($aid) {
-  return db_fetch_object(db_query("SELECT * FROM {actions} WHERE aid = '%s'", $aid));
+  return actions_unpack(db_fetch_object(db_query("SELECT * FROM {actions} WHERE aid = '%s'", $aid)));
+}
+
+/**
+ * Prepare a action fields to be accessed.
+ *
+ * @param $action
+ *   An action object from a db_query
+ *
+ * @return
+ *   The given action field with unpacked fields
+ */
+
+function actions_unpack($action) {
+  $action->parameters = ($action->parameters) ? unserialize($action->parameters) : array();
+  return $action;
 }
 
 /**
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.585.2.23
diff -u -p -r1.585.2.23 system.module
--- modules/system/system.module	22 Oct 2008 19:36:26 -0000	1.585.2.23
+++ modules/system/system.module	5 Dec 2008 00:03:16 -0000
@@ -1431,16 +1431,13 @@ function system_actions_configure($form_
   if (is_numeric($action)) {
     $aid = $action;
     // Load stored parameter values from database.
-    $data = db_fetch_object(db_query("SELECT * FROM {actions} WHERE aid = '%s'", $aid));
+    $data = actions_load($aid);
     $edit['actions_description'] = $data->description;
     $edit['actions_type'] = $data->type;
     $function = $data->callback;
     $action = md5($data->callback);
-    $params = unserialize($data->parameters);
-    if ($params) {
-      foreach ($params as $name => $val) {
-        $edit[$name] = $val;
-      }
+    foreach ($data->parameters as $name => $val) {
+      $edit[$name] = $val;
     }
   }
   else {
