diff --git a/interface/lib/classes/remote.d/domains.inc.php b/interface/lib/classes/remote.d/domains.inc.php
index 33830335d8989990cd1c4f4613ab290679763184..05a639ad6e20f287806c8f395d1ae94d6e5eb422 100644
--- a/interface/lib/classes/remote.d/domains.inc.php
+++ b/interface/lib/classes/remote.d/domains.inc.php
@@ -65,6 +65,16 @@ class remoting_domains extends remoting {
 		return $this->insertQuery('../client/form/domain.tform.php', $client_id, $params);
 	}
 
+	//* Update a record
+	public function domains_domain_update($session_id, $client_id, $primary_id, $params)
+	{
+		if(!$this->checkPerm($session_id, 'domains_domain_update')) {
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
+			return false;
+		}
+		return $this->updateQuery('../client/form/domain.tform.php', $client_id, $primary_id, $params);
+	}
+
 	//* Delete a record
 	public function domains_domain_delete($session_id, $primary_id)
 	{
diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php
index fe8b1694c404de7f3382ef89060bb8435c56d6d6..6e551355a690536aa8e938395c110476914ceb3d 100644
--- a/interface/lib/classes/remoting.inc.php
+++ b/interface/lib/classes/remoting.inc.php
@@ -383,7 +383,7 @@ class remoting {
 		$app->remoting_lib->loadFormDef($formdef_file);
 		
 		//* get old record and merge with params, so only new values have to be set in $params
-		$old_rec = $app->remoting_lib->getDataRecord($primary_id);
+               $old_rec = $app->remoting_lib->getDataRecord($primary_id, $client_id);
 		
 		foreach ($app->remoting_lib->formDef['fields'] as $fieldName => $fieldConf)
         {
diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php
index a5a5d0c31c49c647f33d5a0eca3310133820e05c..62ccd506c889002cc99066e8f68ed7998d93528c 100644
--- a/interface/lib/classes/remoting_lib.inc.php
+++ b/interface/lib/classes/remoting_lib.inc.php
@@ -225,10 +225,10 @@ class remoting_lib extends tform_base {
 		return $sql;
 	}
 
-	function getDataRecord($primary_id) {
+       function getDataRecord($primary_id, $client_id = 0) {
 		global $app;
 		$escape = '`';
-		$this->loadUserProfile();
+               $this->loadUserProfile($client_id);
 		if(@is_numeric($primary_id)) {
 			if($primary_id > 0) {
 				// Return a single record
diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php
index 3dc9edacc18b10f87fe8befba9d6d3252ee7b2ba..36de1371ab25fabe07d908f431ce8bb9016a8833 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -1384,7 +1384,7 @@ class tform_base {
 		} else {
 			if($this->formDef['auth'] == 'yes') {
 				if($primary_id != 0) {
-					if($api == true && $_SESSION["s"]["user"]["client_id"] > 0 && $_SESSION["s"]["user"]["iserid"] > 0 && $_SESSION["s"]["user"]["default_group"] > 0) {
+					if($api == true && $_SESSION["s"]["user"]["client_id"] > 0 && $_SESSION["s"]["user"]["userid"] > 0 && $_SESSION["s"]["user"]["default_group"] > 0) {
 						$sql_update .= '`sys_userid` = '.$this->sys_userid.', ';
 						$sql_update .= '`sys_groupid` = '.$this->sys_default_group.', ';
 					}
diff --git a/interface/web/client/lib/remote.conf.php b/interface/web/client/lib/remote.conf.php
index d58029e8513ad78a26ca2abfa783ec41d70bfea8..0c2449b93901911b18098b4e2627e8ddedfc3a75 100644
--- a/interface/web/client/lib/remote.conf.php
+++ b/interface/web/client/lib/remote.conf.php
@@ -1,7 +1,7 @@
 <?php
 
 $function_list['client_get_all,client_get,client_add,client_update,client_delete,client_get_sites_by_user,client_get_by_username,client_get_by_customer_no,client_change_password,client_get_id,client_delete_everything,client_get_emailcontact'] = 'Client functions';
-$function_list['domains_domain_get,domains_domain_add,domains_domain_delete,domains_get_all_by_user'] = 'Domaintool functions';
+$function_list['domains_domain_get,domains_domain_add,domains_domain_update,domains_domain_delete,domains_get_all_by_user'] = 'Domaintool functions';
 $function_list['quota_get_by_user,trafficquota_get_by_user,mailquota_get_by_user,databasequota_get_by_user'] = 'Quota functions';
 
 
diff --git a/remoting_client/API-docs/domains_domain_update.html b/remoting_client/API-docs/domains_domain_update.html
new file mode 100644
index 0000000000000000000000000000000000000000..bf3dd9c4bdc6b9727d10f3d6e1a0c6c79cc4bcef
--- /dev/null
+++ b/remoting_client/API-docs/domains_domain_update.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><title>ISPCOnfig 3 remote API documentation</title>
+
+  
+
+  
+  
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  <link rel="stylesheet" type="text/css" href="definitionen.css">
+  <style type="text/css">
+  </style></head>
+
+<body>
+<div style="padding:40px">
+<h1>domains_domain_update(<span class="var">$session_id</span>, <span class="var">$client_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span>);</h1>
+<br>
+<p class="headgrp">Description: </p>
+<p class="margin"> Updates domain to move it to another client.</p><br>
+<p class="headgrp">Input Variables: </p> 
+<p class="margin"> <span class="var">$session_id</span>, <span class="var">$client_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span></p>
+<p class="headgrp">Parameters (in <span class="var">$params</span>): </p>
+<p class="margin"> domain&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
+<p class="margin"> client_id&nbsp;&nbsp;(<span class="paratype">int(11)</span>)</p>
+<p class="headgrp">Output: </p> 
+<p class="margin"> Returns the number of affected rows.</p>
+<!--<b>Output:</b> 
+<p style="margin-left:100px">Gives a record of </p> -->
+</div>
+
+</body></html>
diff --git a/remoting_client/examples/domains_domain_update.php b/remoting_client/examples/domains_domain_update.php
new file mode 100644
index 0000000000000000000000000000000000000000..244222428c773097a4d6c98f9dafef48035d1e47
--- /dev/null
+++ b/remoting_client/examples/domains_domain_update.php
@@ -0,0 +1,39 @@
+<?php
+
+require 'soap_config.php';
+
+
+$client = new SoapClient(null, array('location' => $soap_location,
+		'uri'      => $soap_uri,
+		'trace' => 1,
+		'exceptions' => 1));
+
+
+try {
+	if($session_id = $client->login($username, $password)) {
+		echo 'Logged successfull. Session ID:'.$session_id.'<br />';
+	}
+
+	//* Set the function parameters.
+	$client_id = 1;
+	$primary_id = 42; // The domain_id
+	$params = array(
+		'domain' => 'cellar.door'
+	);
+
+	$result = $client->domains_domain_update($session_id, $client_id, $primary_id, $params);
+
+	if ($result) {
+		echo 'Domain updated.<br />';
+	}
+	if ($client->logout($session_id)) {
+		echo 'Logged out.<br />';
+	}
+
+
+} catch (SoapFault $e) {
+	echo $client->__getLastResponse();
+	die('SOAP Error: '.$e->getMessage());
+}
+
+?>