diff --git modules/data.eval.inc modules/data.eval.inc
index 9dae670..4857a59 100644
--- modules/data.eval.inc
+++ modules/data.eval.inc
@@ -209,6 +209,10 @@ function rules_action_data_list_remove($list, $item) {
  * Action: Add variable.
  */
 function rules_action_variable_add($args, $element) {
+  if (!isset($args['value']) && strpos($args['type'], 'list<') === 0) {
+    // Create an array for empty lists.
+    $args['value'] = array();
+  }
   return array('variable_added' => $args['value']);
 }
 
diff --git modules/data.rules.inc modules/data.rules.inc
index 4ff6bb7..f00862c 100644
--- modules/data.rules.inc
+++ modules/data.rules.inc
@@ -244,6 +244,7 @@ function rules_data_action_info() {
       'value' => array(
         'type' => 'unknown',
         'label' => t('Value'),
+        'optional' => TRUE,
       ),
     ),
     'provides' => array(
