diff --git a/delegator/delegator.admin.inc b/delegator/delegator.admin.inc
index 05ae6da968ad20bbd8901d335376953a7d1185a3..4e0b4e4d24c197a226059c2e5dc193cb700d0330 100644
--- a/delegator/delegator.admin.inc
+++ b/delegator/delegator.admin.inc
@@ -910,6 +910,7 @@ function delegator_admin_list_form_action_clone($form, &$form_state, $id, $actio
   }
 
   $handler->name = $name;
+  unset($handler->did);
 
   // Store the new handler.
   if (!$form_state['cache']->locked) {
diff --git a/delegator/delegator.module b/delegator/delegator.module
index 5afd49c4d79ec61514767d9a2249b0207f043795..c98d5b9a9d3db02735df049b4d8ee07e7c5c5bea 100644
--- a/delegator/delegator.module
+++ b/delegator/delegator.module
@@ -165,6 +165,7 @@ function delegator_menu_task_items(&$items, $task_id, $task, $handlers, $subtask
       'description' => isset($task['admin description']) ? $task['admin description'] : '',
       'page callback' => 'delegator_administer_task',
       'page arguments' => array($task_name),
+      'type' => MENU_CALLBACK,
     ) + $base;
   }
 
@@ -260,7 +261,7 @@ function delegator_load_task_handler($task, $subtask_id, $name) {
 /**
  * Load all task handlers for a given task/subtask.
  */
-function delegator_load_task_handlers($task, $subtask_id = NULL) {
+function delegator_load_task_handlers($task, $subtask_id = NULL, $default_handlers = NULL) {
   ctools_include('export');
   $conditions = array(
     'task' => $task['name'],
@@ -271,7 +272,7 @@ function delegator_load_task_handlers($task, $subtask_id = NULL) {
   }
 
   $handlers = ctools_export_load_object('delegator_handlers', 'conditions', $conditions);
-  $defaults = delegator_get_default_task_handlers($task, $subtask_id);
+  $defaults = isset($default_handlers) ? $default_handlers : delegator_get_default_task_handlers($task, $subtask_id);
   foreach ($defaults as $name => $default) {
     $result = delegator_compare_task_handlers($handlers, $defaults, $name);
     if ($result) {
diff --git a/delegator/plugins/tasks/page.admin.inc b/delegator/plugins/tasks/page.admin.inc
index 8ce19c92a5c8ab60cf6c0cbcb2c8173829e3ccb2..9c4d6f4683665b32e5acf0978bc8c03ea30b609a 100644
--- a/delegator/plugins/tasks/page.admin.inc
+++ b/delegator/plugins/tasks/page.admin.inc
@@ -190,7 +190,7 @@ function delegator_page_menu_item($menu, $access_arguments, $page_arguments, $lo
     'page callback' => 'delegator_page_execute',
     'page arguments' => $page_arguments,
     'load arguments' => $load_arguments,
-    'file' => 'plugins/tasks/page.admin.inc',
+    'file' => 'plugins/tasks/page.inc',
   );
 
   if (isset($menu['title'])) {
@@ -585,6 +585,8 @@ function delegator_page_form_menu(&$form, &$form_state) {
     '#dependency' => array('radio:menu[type]' => array('normal', 'tab', 'default tab')),
   );
 
+  list($major, $minor) = explode('.', VERSION, 2);
+
   $form['menu']['name-warning'] = array(
     '#type' => 'markup',
     '#prefix' => '<div class="warning">',
@@ -592,7 +594,7 @@ function delegator_page_form_menu(&$form, &$form_state) {
     '#suffix' => '</div>',
     '#process' => array('ctools_dependent_process'),
     '#dependency' => array('radio:menu[type]' => array('normal')),
-    '#access' => (VERSION < 6.5),
+    '#access' => ($minor < 5),
   );
 
   // Only display the menu selector if menu module is enabled.
diff --git a/delegator/plugins/tasks/page.inc b/delegator/plugins/tasks/page.inc
index 5691f0074f600439567ec75be2cbe120b192cba7..b14b90ab7e518a6e459f32e8a403b886bbb94567 100644
--- a/delegator/plugins/tasks/page.inc
+++ b/delegator/plugins/tasks/page.inc
@@ -107,7 +107,8 @@ function delegator_page_build_subtask($task, $page) {
       );
     }
     else {
-      $task_handlers = delegator_load_task_handlers($task, $page->name);
+      $default_handlers = isset($page->default_handlers) ? $page->default_handlers : array();
+      $task_handlers = delegator_load_task_handlers($task, $page->name, $default_handlers);
       if ($task_handlers) {
         $handler = array_shift($task_handlers);
         $plugin = delegator_get_task_handler($handler->handler);
@@ -396,7 +397,7 @@ function delegator_page_save(&$subtask) {
 
   // If this was a default page we may need to write default task
   // handlers that we provided as well.
-  if (!$update || isset($subtask->default_handlers)) {
+  if (!$update && isset($subtask->default_handlers)) {
     $handlers = delegator_load_task_handlers(delegator_get_task('page'), $subtask->name);
     foreach ($subtask->default_handlers as $name => $handler) {
       if (!isset($handlers[$name]) || !($handlers[$name]->export_type & EXPORT_IN_DATABASE)) {
diff --git a/plugins/access/node_language.inc b/plugins/access/node_language.inc
index b787db07f2da4cb9147656d0397840bfbb17a592..7363538d3649f7b0709a591e7a1288d9dd71cce3 100644
--- a/plugins/access/node_language.inc
+++ b/plugins/access/node_language.inc
@@ -11,7 +11,7 @@
  */
 function ctools_node_language_ctools_access() {
   if (module_exists('locale')) {
-    $args['node_language'] = array(
+    $items['node_language'] = array(
       'title' => t("Node access by language"),
       'description' => t('Control access by node language.'),
       'callback' => 'ctools_node_language_ctools_access_check',
@@ -21,9 +21,8 @@ function ctools_node_language_ctools_access() {
       'summary' => 'ctools_node_language_ctools_acesss_summary',
       'required context' => new ctools_context_required(t('Node'), 'node'),
     );
+    return $items;
   }
-
-  return $args;
 }
 
 /**
diff --git a/plugins/access/site_language.inc b/plugins/access/site_language.inc
index 5f0b0d2d6fedeadb399347179298d01b18ac2fed..662f9d6479a59d6a76da03ec9c264b120624e72c 100644
--- a/plugins/access/site_language.inc
+++ b/plugins/access/site_language.inc
@@ -11,7 +11,7 @@
  */
 function ctools_site_language_ctools_access() {
   if (module_exists('locale')) {
-    $args['site_language'] = array(
+    $items['site_language'] = array(
       'title' => t("Access by site language"),
       'description' => t('Control access by the language the site currently uses.'),
       'callback' => 'ctools_site_language_ctools_access_check',
@@ -19,11 +19,9 @@ function ctools_site_language_ctools_access() {
       'settings form' => 'ctools_site_language_ctools_access_settings',
       'settings form submit' => 'ctools_site_language_ctools_access_settings_submit',
       'summary' => 'ctools_site_language_ctools_acesss_summary',
-//      'required context' => new ctools_context_required(t('Node'), 'node'),
     );
+    return $items;
   }
-
-  return $args;
 }
 
 /**