diff --git a/actions/menu.action.inc b/actions/menu.action.inc
new file mode 100644
index 0000000..02d3b7a
--- /dev/null
+++ b/actions/menu.action.inc
@@ -0,0 +1,74 @@
+<?php
+/**
+ * @file Drupal action to create menu items for nodes.
+ */
+ 
+/**
+ * Implementation of hook_action_info().
+ * Called by VBO on its own hook_action_info().
+ */
+function views_bulk_operations_menu_action_info() {
+  if (!module_exists('menu')) return array();
+
+  return array('views_bulk_operations_menu_action' => 
+    array(
+      'type' => 'node',
+      'description' => t('Add node to menu'),
+      'configurable' => TRUE,
+    )
+  );
+}
+
+/**
+ * Action function.
+ */
+function views_bulk_operations_menu_action(&$node, $context) {
+  $parent = explode(":", $context['plid']);
+  $menu_name = $parent[0];
+  $plid = intval($parent[1]);
+
+  if ($plid || $menu_name) {
+    $item = array(
+      'link_path' => 'node/' . $node->nid,
+      'link_title' => $node->title,
+      'menu_name' => $menu_name,
+      'plid' => $plid,
+      'hidden' => $context['hidden']
+      );
+    menu_link_save($item);
+    menu_cache_clear_all();
+  }
+}
+
+/**
+ * Action form function.
+ */
+function views_bulk_operations_menu_action_form($context) {
+  $options = menu_parent_options(menu_get_menus(), NULL); // not system menus
+
+  $form['plid'] = array(
+    '#type' => 'select',
+    '#title' => t('Parent item'),
+    '#default_value' => $default,
+    '#options' => $options,
+    '#description' => t('The maximum depth for an item and all its children is fixed at !maxdepth. Some menu items may not be available as parents if selecting them would exceed this limit.', array('!maxdepth' => MENU_MAX_DEPTH)),
+    '#attributes' => array('class' => 'menu-title-select'),
+  );
+
+  $form['hidden'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Disabled'),
+    '#weight' => 10,
+    '#default_value' => 1,
+    '#description' => t('Menu items that are not enabled will not be listed in any menu.'),
+  );
+
+  return $form;
+}
+
+/**
+ * Action form submit handler.
+ */
+function views_bulk_operations_menu_action_submit($form, $form_state) {
+  return array('plid' => $form_state['values']['plid'], 'hidden' => $form_state['values']['hidden']);
+}
diff --git a/views_bulk_operations.install b/views_bulk_operations.install
index bb4e068..8ca3066 100644
--- a/views_bulk_operations.install
+++ b/views_bulk_operations.install
@@ -130,3 +130,13 @@ function views_bulk_operations_update_6002() {
   variable_del('views_bulk_operations_actions');
   return array();
 }
+
+/**
+ * Implementation of hook_update_N().
+ *
+ * Delete variable views_bulk_operations_actions to pick up new actions.
+ */
+function views_bulk_operations_update_6003() {
+  variable_del('views_bulk_operations_actions');
+  return array();
+}
