diff --git a/drush/Provision/Service/remote/import/hostmaster.php b/drush/Provision/Service/remote/import/hostmaster.php
index 256639e..03b7d3b 100644
--- a/drush/Provision/Service/remote/import/hostmaster.php
+++ b/drush/Provision/Service/remote/import/hostmaster.php
@@ -26,6 +26,14 @@ class Provision_Service_remote_import_hostmaster extends Provision_Service_remot
   /**
    * Initialize this class, including option handling.
    */
+  function init_server() {
+    parent::init_server();
+    $this->server->setProperty('remote_user', '');
+  }
+
+  /**
+   * Initialize this class, including option handling.
+   */
   function init() {
     // REMEMBER TO CALL THE PARENT!
     parent::init();
@@ -124,7 +132,14 @@ class Provision_Service_remote_import_hostmaster extends Provision_Service_remot
       'root' => NULL,
       'uri' => NULL,
     );
-    return drush_invoke_process(array('remote-host' => $this->server->remote_host, 'remote-user' => $this->server->script_user), $command, $data, array(), array('method' => 'POST', 'integrate' => TRUE));
+    $config = array('remote-host' => $this->server->remote_host);
+    if (!empty($this->server->remote_user)) {
+      $config['remote-user']  = $this->server->remote_user;
+    }
+    else {
+      $config['remote-user'] = $this->server->script_user;
+    }
+    return drush_invoke_process($config, $command, $data, array(), array('method' => 'POST', 'integrate' => TRUE));  
   }
 
   function fetch_site($site) {
@@ -145,7 +160,11 @@ class Provision_Service_remote_import_hostmaster extends Provision_Service_remot
     $options = array(
       'omit-dir-times' => TRUE,
     );
-    if (drush_core_call_rsync(escapeshellarg($this->server->script_user . '@' . $this->server->remote_host . ':/') . $path, $dest, $options, TRUE, FALSE)) {
+    $user = $this->server->script_user;
+    if (!empty($this->server->remote_user)) {
+      $user = $this->server->remote_user;
+    }
+    if (drush_core_call_rsync(escapeshellarg($user . '@' . $this->server->remote_host . ':/') . $path, $dest, $options, TRUE, FALSE)) {
       drush_log(dt('@path has been fetched from remote server @remote_host.', array(
         '@path' => $path,
         '@remote_host' => $this->server->remote_host))
diff --git a/hosting_remote_import.service.inc b/hosting_remote_import.service.inc
index 88bbb87..fcb25a5 100644
--- a/hosting_remote_import.service.inc
+++ b/hosting_remote_import.service.inc
@@ -26,5 +26,59 @@ class hostingService_remote_import_hostmaster extends hostingService_remote_impo
    */
   public $has_port = FALSE;
 
-}
 
+  /**
+   * The name displayed to users when creating or editing a server.
+   */
+  public $name = 'Remote hostmaster';
+
+
+  function load() {
+    parent::load();
+    $this->remote_user = variable_get('hosting_user_remote_server_' . $this->server->nid, '');
+  }
+
+  function insert() {
+    parent::insert();
+    variable_set('hosting_user_remote_server_' . $this->server->nid, $this->remote_user);
+  }
+
+  function update() {
+    parent::update();
+    variable_set('hosting_user_remote_server_' . $this->server->nid, $this->remote_user);
+  }
+
+  function delete() {
+    parent::delete();
+    variable_del('hosting_user_remote_server_' . $this->server->nid);
+  }
+
+  public function form(&$form) {
+    parent::form($form);
+    $form['remote_user'] = array(
+      '#type' => 'textfield',
+      '#title' => 'Remote user',
+      '#description' => t('The remote ssh user.'),
+      '#default_value' => (isset($this->remote_user)) ? $this->remote_user : '',
+      '#size' => 20,
+      '#maxlength' => 255
+    );
+  }
+
+  function view(&$render) {
+    parent::view($render);
+    $render['remote_user'] = array(
+      '#type' => 'item',
+      '#title' => t('Remote user'),
+      '#markup' => filter_xss($this->remote_user),
+    );
+  }
+  
+
+  public function context_options($task_type, $ref_type, &$task) {
+    parent::context_options($task_type, $ref_type, $task);
+    $task->context_options['remote_user'] = variable_get('hosting_user_remote_server_' . $this->server->nid, '');
+    drush_log("context_options " . print_r($task,1));
+  }
+
+}
