Index: includes/actions.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/actions.inc,v
retrieving revision 1.24
diff -u -F^f -r1.24 actions.inc
--- includes/actions.inc	20 Dec 2008 05:20:20 -0000	1.24
+++ includes/actions.inc	23 Dec 2008 00:15:28 -0000
@@ -70,7 +70,8 @@ function actions_do($action_ids, $object
       $query->condition('aid', $conditions, 'IN');
       $result = $query->execute();
       foreach ($result as $action) {
-        $actions[$action->aid] = $action->parameters ? unserialize($action->parameters) : array();
+        $action = actions_unpack($action);
+        $actions[$action->aid] = $action->parameters;
         $actions[$action->aid]['callback'] = $action->callback;
         $actions[$action->aid]['type'] = $action->type;
       }
@@ -94,9 +95,9 @@ function actions_do($action_ids, $object
   else {
     // If it's a configurable action, retrieve stored parameters.
     if (is_numeric($action_ids)) {
-      $action = db_query("SELECT callback, parameters FROM {actions} WHERE aid = :aid", array(':aid' => $action_ids))->fetchObject();
+      $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.
@@ -352,10 +353,26 @@ function actions_save($function, $type, 
  *   The appropriate action row from the database as an object.
  */
 function actions_load($aid) {
-  return db_query("SELECT aid, type, callback, parameters, description FROM {actions} WHERE aid = :aid", array(':aid' => $aid))->fetchObject();
+  return actions_unpack(db_query("SELECT aid, type, callback, parameters, description FROM {actions} WHERE aid = :aid", array(':aid' => $aid))->fetchObject());
 }
 
 /**
+ * Prepare an action database object for use.
+ *
+ * @param $action
+ *   An action database object.
+ *
+ * @return
+ *   The given action field with unpacked fields.
+ */
+
+function actions_unpack($action) {
+  $action->parameters = ($action->parameters) ? unserialize($action->parameters) : array();
+  return $action;
+}
+
+
+/**
  * Delete a single action from the database.
  *
  * @param $aid
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.652
diff -u -F^f -r1.652 system.module
--- modules/system/system.module	20 Dec 2008 05:20:20 -0000	1.652
+++ modules/system/system.module	23 Dec 2008 00:15:30 -0000
@@ -1727,16 +1727,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 {
