diff --git a/modules/hosting/dispatch.hosting.inc b/modules/hosting/dispatch.hosting.inc
index 51a3ed1..745c722 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_invoke_process('@self', "hosting-" . $queue, array(), array('items' => $count), array('fork' => TRUE));
             }
           } 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..d8d17cd 100644
--- a/modules/hosting/hosting.api.php
+++ b/modules/hosting/hosting.api.php
@@ -263,10 +263,10 @@ 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 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.
+ * the process by calling drush_invoke_process() with the 'fork' option,
+ * 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_invoke_process() without the 'fork' option.
  *
  * @param $count
  *   The maximum number of items to 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), array(), array('fork' => TRUE));
   }
 }
 
diff --git a/modules/hosting/task.hosting.inc b/modules/hosting/task.hosting.inc
index 419c6df..e0f80ec 100644
--- a/modules/hosting/task.hosting.inc
+++ b/modules/hosting/task.hosting.inc
@@ -104,7 +104,7 @@ function drush_hosting_task() {
       call_user_func($function, $task);
     }
 
-    $output = drush_backend_invoke_args('provision-save', array('@' . $task->ref->hosting_name), $task->context_options, $mode);
+    $output = drush_invoke_process('@self', 'provision-save', array('@' . $task->ref->hosting_name), $task->context_options, array('method' => $mode));
   }
   // Run the actual command. Adding alias here to work aorund Drush API.
   $output = provision_backend_invoke($task->ref->hosting_name, 'provision-' . $task->task_type, $task->args, $task->options, $mode);
@@ -115,7 +115,7 @@ function drush_hosting_task() {
 
   // On succesful delete, remove the named context.
   if ($task->task_type === 'delete' && $task->task_status === HOSTING_TASK_SUCCESS) {
-    $output = drush_backend_invoke_args('provision-save', array('@' . $task->ref->hosting_name), array('delete' => TRUE), $mode);
+    $output = drush_invoke_process('@self', 'provision-save', array('@' . $task->ref->hosting_name), array('delete' => TRUE), array('method' => $mode));
   }
 
   // New revision is created at the beginning of function.
diff --git a/modules/hosting/task/hosting_task.module b/modules/hosting/task/hosting_task.module
index fb5e17a..db172fe 100644
--- a/modules/hosting/task/hosting_task.module
+++ b/modules/hosting/task/hosting_task.module
@@ -498,7 +498,7 @@ function hosting_tasks_queue($count = 20) {
   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), array(), array('fork' => TRUE));
   }
 }
 
