diff --git a/includes/actions.inc b/includes/actions.inc
index 65089b6ac30f4530393f58c323783022910c6a7d..3ef5b848a60c24dcffbc3d12243a667ed76d6c59 100644
--- a/includes/actions.inc
+++ b/includes/actions.inc
@@ -77,8 +77,13 @@ function actions_do($action_ids, $object = NULL, $context = NULL, $a1 = NULL, $a
       // Configurable actions need parameters.
       if (is_numeric($action_id)) {
         $function = $params['callback'];
-        $context = array_merge($context, $params);
-        $actions_result[$action_id] = $function($object, $context, $a1, $a2);
+        if (function_exists($function)) {
+          $context = array_merge($context, $params);
+          $actions_result[$action_id] = $function($object, $context, $a1, $a2);
+        }
+        else {
+          $actions_result[$action_id] = FALSE;
+        }
       }
       // Singleton action; $action_id is the function name.
       else {
@@ -92,8 +97,13 @@ function actions_do($action_ids, $object = NULL, $context = NULL, $a1 = NULL, $a
     if (is_numeric($action_ids)) {
       $action = db_query("SELECT callback, parameters FROM {actions} WHERE aid = :aid", array(':aid' => $action_ids))->fetchObject();
       $function = $action->callback;
-      $context = array_merge($context, unserialize($action->parameters));
-      $actions_result[$action_ids] = $function($object, $context, $a1, $a2);
+      if (function_exists($function)) {
+        $context = array_merge($context, unserialize($action->parameters));
+        $actions_result[$action_ids] = $function($object, $context, $a1, $a2);
+      }
+      else {
+        $actions_result[$action_ids] = FALSE;
+      }
     }
     // Singleton action; $action_ids is the function name.
     else {