diff --git a/modules/hosting/dispatch.hosting.inc b/modules/hosting/dispatch.hosting.inc
index 51a3ed1..f7fd022 100644
--- a/modules/hosting/dispatch.hosting.inc
+++ b/modules/hosting/dispatch.hosting.inc
@@ -41,7 +41,7 @@ function drush_hosting_dispatch() {
               drush_log(dt("maximum number of tasks (@count) already running", array('@count' => $info['running_items'])));
             } else {
               drush_log(dt("found @running running tasks, starting @count out of @max items", array('@running' => $info['running_items'], '@count' => $count, '@max' => $info['calc_items'])));
-              drush_backend_fork("hosting-" . $queue, array('items' => $count));
+              drush_backend_fork('@self', "hosting-" . $queue, array(), array('items' => $count));
             }
           } else {
             drush_log(dt("too early for queue @queue", array('@queue' => $queue)));
diff --git a/modules/hosting/hosting.api.php b/modules/hosting/hosting.api.php
index 232e033..6dc5fa6 100644
--- a/modules/hosting/hosting.api.php
+++ b/modules/hosting/hosting.api.php
@@ -263,7 +263,7 @@ function hook_post_hosting_TASK_TYPE_task($task, $data) {
  * module to determine which items it wishes to process.
  *
  * If you wish to process multiple items at the same time you will need to fork
- * the process by calling drush_backend_fork(), specifying a drush command with
+ * the process by calling drush_invoke_process(), specifying a drush command with
  * the arguments required to process your task. Otherwise you can do all your
  * processing in this function, or similarly call drush_backend_invoke(), which
  * won't fork the process.
@@ -281,7 +281,7 @@ function hosting_QUEUE_TYPE_queue($count = 5) {
   drush_log(dt("Running tasks queue"));
   $tasks = _hosting_get_new_tasks($count);
   foreach ($tasks as $task) {
-    drush_backend_fork("hosting-task", array($task->nid));
+    drush_invoke_process('@self', "hosting-task", array($task->nid));
   }
 }
 
