Index: branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/ClientInformation.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/ClientInformation.cs	(revision 7944)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/ClientInformation.cs	(revision 7945)
@@ -76,6 +76,11 @@
       try {
         AccessClient.CallAccessService(x => clientInfo = x.GetClient(clientId));
-        if (clientInfo != null)
+        if (clientInfo != null) {
           clientExists = true;
+          if (clientInfo.HeuristicLabVersion != ClientInformationUtils.GetHLVersion()) {
+            clientInfo.HeuristicLabVersion = ClientInformationUtils.GetHLVersion();
+            AccessClient.CallAccessService(x => x.UpdateClient(clientInfo));
+          }
+        }
         errorOccured = false;
         occuredException = null;
Index: branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/AccessService.dbml
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/AccessService.dbml	(revision 7944)
+++ branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/AccessService.dbml	(revision 7945)
@@ -1,9 +1,9 @@
 ﻿<?xml version="1.0" encoding="utf-8"?><Database Name="HeuristicLab.ClientManagement" Class="AccessServiceDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
-  <Connection Mode="AppSettings" ConnectionString="Data Source=.;Initial Catalog=HeuristicLab.ClientManagement;Integrated Security=True" SettingsObjectName="HeuristicLab.Services.Access.DataAccess.Properties.Settings" SettingsPropertyName="HeuristicLab_ClientManagementConnectionString" Provider="System.Data.SqlClient" />
+  <Connection Mode="AppSettings" ConnectionString="Data Source=.;Initial Catalog=HeuristicLab.AccessService;Integrated Security=True" SettingsObjectName="HeuristicLab.Services.Access.DataAccess.Properties.Settings" SettingsPropertyName="HeuristicLab_ClientManagementConnectionString" Provider="System.Data.SqlClient" />
   <Table Name="dbo.Resource" Member="Resources">
     <Type Name="Resource" InheritanceCode="Resource" IsInheritanceDefault="true">
       <Column Name="Id" AutoSync="OnInsert" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
       <Column Name="Name" Type="System.String" DbType="NVarChar(MAX) NOT NULL" CanBeNull="false" />
-      <Column Name="Description" Type="System.String" DbType="NVarChar(MAX)" CanBeNull="false" />
+      <Column Name="Description" Type="System.String" DbType="NVarChar(MAX)" CanBeNull="true" />
       <Column Name="Type" Type="System.String" DbType="NVarChar(MAX) NOT NULL" CanBeNull="false" IsDiscriminator="true" />
       <Association Name="Resource_ResourceResourceGroup" Member="ResourceResourceGroupsChilds" Storage="_ResourceResourceGroups" ThisKey="Id" OtherKey="ResourceGroupId" Type="ResourceResourceGroup" />
@@ -12,5 +12,5 @@
       <Association Name="Resource_ResourcePlugin" Member="ResourcePlugins" ThisKey="Id" OtherKey="ResourceId" Type="ResourcePlugin" />
       <Type Name="Client" InheritanceCode="Client">
-        <Column Name="HeuristicLabVersion" Type="System.String" DbType="NVarChar(MAX)" CanBeNull="false" />
+        <Column Name="HeuristicLabVersion" Type="System.String" DbType="NVarChar(MAX)" CanBeNull="true" />
         <Column Name="MemorySize" Type="System.Int32" DbType="Int" CanBeNull="true" />
         <Column Name="Timestamp" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
Index: branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/AccessService.dbml.layout
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/AccessService.dbml.layout	(revision 7944)
+++ branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/AccessService.dbml.layout	(revision 7945)
@@ -47,5 +47,5 @@
       </nodes>
     </inheritanceConnector>
-    <inheritanceConnector edgePoints="[(5.625 : 2.07859537760417); (5.625 : 2.26); (5.79166666666667 : 2.26 : JumpStart); (5.98958333333333 : 2.26 : JumpEnd); (7 : 2.26); (7 : 2.5)]" fixedFrom="NotFixed" fixedTo="NotFixed" TargetRelationshipDomainClassId="7a7fe09e-e9ef-4b01-9ff3-bde95e827b62">
+    <inheritanceConnector edgePoints="[(5.625 : 2.07859537760417); (5.625 : 2.26); (7 : 2.26); (7 : 2.5)]" fixedFrom="NotFixed" fixedTo="NotFixed" TargetRelationshipDomainClassId="7a7fe09e-e9ef-4b01-9ff3-bde95e827b62">
       <nodes>
         <classShapeMoniker Id="20c6e07e-aa12-43dc-87d6-dae5bf173da4" />
@@ -179,5 +179,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(2.5 : 2.72199625651042); (3.75 : 2.72199625651042)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(2.5 : 2.72199625651042); (2.79166666666667 : 2.72199625651042 : JumpStart); (2.95833333333333 : 2.72199625651042 : JumpEnd); (3.75 : 2.72199625651042)]" fixedFrom="NotFixed" fixedTo="NotFixed">
       <AssociationMoniker Name="/AccessServiceDataContext/OperatingSystem/OperatingSystem_Client" />
       <nodes>
Index: branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/AccessService.designer.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/AccessService.designer.cs	(revision 7944)
+++ branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/AccessService.designer.cs	(revision 7945)
@@ -3,5 +3,5 @@
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.530
+//     Runtime Version:4.0.30319.544
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
@@ -284,5 +284,5 @@
 		}
 		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(MAX)", CanBeNull=false)]
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(MAX)")]
 		public string Description
 		{
@@ -511,5 +511,5 @@
 		}
 		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HeuristicLabVersion", DbType="NVarChar(MAX)", CanBeNull=false)]
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HeuristicLabVersion", DbType="NVarChar(MAX)")]
 		public string HeuristicLabVersion
 		{
Index: branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/AccessService.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/AccessService.cs	(revision 7944)
+++ branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/AccessService.cs	(revision 7945)
@@ -139,5 +139,40 @@
 
     public void UpdateClient(DT.Client client) {
-      AddClient(client);
+      string country = string.Empty;
+
+      OperationContext opContext = OperationContext.Current;
+
+      if (opContext != null) {
+        MessageProperties properties = opContext.IncomingMessageProperties;
+        RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
+        string ipAdr = endpoint.Address;
+        country = GeoIPLookupService.Instance.GetCountryName(ipAdr);
+      }
+
+      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
+        var query = from c in context.Resources.OfType<DA.Client>()
+                    where c.Id == client.Id
+                    select c;
+
+        if (query.Count() > 0) {
+          var entity = query.First();
+
+          if (country != string.Empty) {
+            var countryQuery = from c in context.GetTable<DA.Country>()
+                               where c.Name == country
+                               select c;
+            if (countryQuery.Count() > 0) {
+              entity.CountryId = countryQuery.First().Id;
+            }
+          }
+
+          entity.Name = client.Name;
+          entity.Description = client.Description;
+          entity.HeuristicLabVersion = client.HeuristicLabVersion;
+          entity.Timestamp = DateTime.Now;
+
+          context.SubmitChanges();
+        }
+      }
     }
 
