Index: trunk/sources/HeuristicLab.Hive.Client.Communication/WcfService.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Communication/WcfService.cs	(revision 943)
+++ trunk/sources/HeuristicLab.Hive.Client.Communication/WcfService.cs	(revision 944)
@@ -58,8 +58,8 @@
 
     public void Connect(String serverIP, int serverPort) {
-      if(!(this.ServerIP == serverIP) && !(this.ServerPort == ServerPort))
+      if(this.ServerIP != serverIP || this.ServerPort != ServerPort)
         ServerChanged(this, new EventArgs());
       this.ServerIP = serverIP;
-      this.ServerPort = serverPort;
+      this.ServerPort = serverPort;      
       Connect();
     }
Index: trunk/sources/HeuristicLab.Hive.Client.Core/ClientConsoleService/ClientConsoleCommunicator.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/ClientConsoleService/ClientConsoleCommunicator.cs	(revision 943)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/ClientConsoleService/ClientConsoleCommunicator.cs	(revision 944)
@@ -20,4 +20,5 @@
 
     public void SetConnection(ConnectionContainer container) {
+      ConfigManager.Instance.SetServerIPAndPort(container);
       WcfService.Instance.Connect(container.IPAdress, container.Port);
     }
Index: trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager/ConfigManager.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager/ConfigManager.cs	(revision 943)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager/ConfigManager.cs	(revision 944)
@@ -28,4 +28,5 @@
 using HeuristicLab.Hive.Client.Core.ClientConsoleService;
 using HeuristicLab.Hive.Client.Communication;
+using HeuristicLab.Hive.Client.Core.Properties;
 
 namespace HeuristicLab.Hive.Client.Core.ConfigurationManager {
@@ -53,6 +54,11 @@
       //retrive GUID from XML file, or burn in hell. as in hell. not heaven.
       //this won't work this way. We need a plugin for XML Handling.      
-      hardwareInfo = new ClientInfo();
-      hardwareInfo.ClientId = Guid.NewGuid();
+      hardwareInfo = new ClientInfo();      
+
+      if (Settings.Default.Guid == Guid.Empty)
+        hardwareInfo.ClientId = Guid.NewGuid();
+      else
+        hardwareInfo.ClientId = Settings.Default.Guid;
+      
       hardwareInfo.NrOfCores = Environment.ProcessorCount;
       hardwareInfo.Memory = 1024;
@@ -62,4 +68,16 @@
     public ClientInfo GetClientInfo() {
       return hardwareInfo;          
+    }
+
+    public ConnectionContainer GetServerIPAndPort() {
+      ConnectionContainer cc = new ConnectionContainer();
+      cc.IPAdress = Settings.Default.ServerIP;
+      cc.Port = Settings.Default.ServerPort;
+      return cc;
+    }
+
+    public void SetServerIPAndPort(ConnectionContainer cc) {
+      Settings.Default.ServerIP = cc.IPAdress;
+      Settings.Default.ServerPort = cc.Port;
     }
 
@@ -82,11 +100,4 @@
       return st;      
     }
-
-    public void Loggedin() {
-      if (hardwareInfo == null) {
-        hardwareInfo = new ClientInfo();
-      }
-      hardwareInfo.Login = DateTime.Now;
-    }
   }
 }
Index: trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 943)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 944)
@@ -62,6 +62,8 @@
 
       wcfService = WcfService.Instance;
-      wcfService.Connect("10.20.53.1", 9000);
-
+      ConnectionContainer cc = ConfigManager.Instance.GetServerIPAndPort();
+      if (cc.IPAdress == String.Empty || cc.Port == 0) {
+        wcfService.Connect("10.20.53.3", 9000);
+      }
       wcfService.LoginCompleted += new EventHandler<LoginCompletedEventArgs>(wcfService_LoginCompleted);
       wcfService.PullJobCompleted += new EventHandler<PullJobCompletedEventArgs>(wcfService_PullJobCompleted);
@@ -136,6 +138,5 @@
     void wcfService_LoginCompleted(object sender, LoginCompletedEventArgs e) {
       if (e.Result.Success) {
-        Logging.GetInstance().Info(this.ToString(), "Login completed to Hive Server @ " + DateTime.Now);
-        ConfigManager.Instance.Loggedin();        
+        Logging.GetInstance().Info(this.ToString(), "Login completed to Hive Server @ " + DateTime.Now);        
       } else
         Logging.GetInstance().Error(this.ToString(), e.Result.StatusMessage);
Index: trunk/sources/HeuristicLab.Hive.Client.Core/HeuristicLab.Hive.Client.Core.csproj
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/HeuristicLab.Hive.Client.Core.csproj	(revision 943)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/HeuristicLab.Hive.Client.Core.csproj	(revision 944)
@@ -83,8 +83,19 @@
     <Compile Include="Heartbeat.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+      <DependentUpon>Settings.settings</DependentUpon>
+    </Compile>
+    <Compile Include="Settings.cs" />
   </ItemGroup>
   <ItemGroup>
+    <None Include="app.config" />
     <None Include="HeuristicLab.snk" />
     <None Include="Properties\AssemblyInfo.frame" />
+    <None Include="Properties\Settings.settings">
+      <Generator>PublicSettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
   </ItemGroup>
   <ItemGroup>
Index: trunk/sources/HeuristicLab.Hive.Client.Core/Properties/Settings.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/Properties/Settings.Designer.cs	(revision 944)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/Properties/Settings.Designer.cs	(revision 944)
@@ -0,0 +1,62 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.3053
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HeuristicLab.Hive.Client.Core.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
+    public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("00000000-0000-0000-0000-000000000000")]
+        public global::System.Guid Guid {
+            get {
+                return ((global::System.Guid)(this["Guid"]));
+            }
+            set {
+                this["Guid"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string ServerIP {
+            get {
+                return ((string)(this["ServerIP"]));
+            }
+            set {
+                this["ServerIP"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("0")]
+        public int ServerPort {
+            get {
+                return ((int)(this["ServerPort"]));
+            }
+            set {
+                this["ServerPort"] = value;
+            }
+        }
+    }
+}
Index: trunk/sources/HeuristicLab.Hive.Client.Core/Properties/Settings.settings
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/Properties/Settings.settings	(revision 944)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/Properties/Settings.settings	(revision 944)
@@ -0,0 +1,15 @@
+﻿<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="HeuristicLab.Hive.Client.Core.Properties" GeneratedClassName="Settings">
+  <Profiles />
+  <Settings>
+    <Setting Name="Guid" Type="System.Guid" Scope="User">
+      <Value Profile="(Default)">00000000-0000-0000-0000-000000000000</Value>
+    </Setting>
+    <Setting Name="ServerIP" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="ServerPort" Type="System.Int32" Scope="User">
+      <Value Profile="(Default)">0</Value>
+    </Setting>
+  </Settings>
+</SettingsFile>
Index: trunk/sources/HeuristicLab.Hive.Client.Core/Settings.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/Settings.cs	(revision 944)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/Settings.cs	(revision 944)
@@ -0,0 +1,28 @@
+﻿namespace HeuristicLab.Hive.Client.Core.Properties {
+    
+    
+    // This class allows you to handle specific events on the settings class:
+    //  The SettingChanging event is raised before a setting's value is changed.
+    //  The PropertyChanged event is raised after a setting's value is changed.
+    //  The SettingsLoaded event is raised after the setting values are loaded.
+    //  The SettingsSaving event is raised before the setting values are saved.
+    public sealed partial class Settings {
+        
+        public Settings() {
+            // // To add event handlers for saving and changing settings, uncomment the lines below:
+            //
+            // this.SettingChanging += this.SettingChangingEventHandler;
+            //
+            // this.SettingsSaving += this.SettingsSavingEventHandler;
+            //
+        }
+        
+        private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
+            // Add code to handle the SettingChangingEvent event here.
+        }
+        
+        private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
+            // Add code to handle the SettingsSaving event here.
+        }
+    }
+}
Index: trunk/sources/HeuristicLab.Hive.Client.Core/app.config
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/app.config	(revision 944)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/app.config	(revision 944)
@@ -0,0 +1,21 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <configSections>
+        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
+            <section name="HeuristicLab.Hive.Client.Core.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+        </sectionGroup>
+    </configSections>
+    <userSettings>
+        <HeuristicLab.Hive.Client.Core.Properties.Settings>
+            <setting name="Guid" serializeAs="String">
+                <value>00000000-0000-0000-0000-000000000000</value>
+            </setting>
+            <setting name="ServerIP" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="ServerPort" serializeAs="String">
+                <value>0</value>
+            </setting>
+        </HeuristicLab.Hive.Client.Core.Properties.Settings>
+    </userSettings>
+</configuration>
Index: trunk/sources/HeuristicLab.sln
===================================================================
--- trunk/sources/HeuristicLab.sln	(revision 943)
+++ trunk/sources/HeuristicLab.sln	(revision 944)
@@ -931,4 +931,5 @@
 		{8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.CEDMA Debug|x86.ActiveCfg = Debug|x86
 		{8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Debug|x86.ActiveCfg = Debug|x86
 		{8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Debug|x86.Build.0 = Debug|x86
Index: trunk/sources/HeuristicLab/MergeConfigs.cmd
===================================================================
--- trunk/sources/HeuristicLab/MergeConfigs.cmd	(revision 943)
+++ trunk/sources/HeuristicLab/MergeConfigs.cmd	(revision 944)
@@ -1,2 +1,3 @@
 ConfigMerger "%SolutionDir%\HeuristicLab.PluginInfrastructure\%Outdir%\HeuristicLab.PluginInfrastructure.dll.config" "HeuristicLab.exe.config"
 ConfigMerger "%SolutionDir%\HeuristicLab.PluginInfrastructure.GUI\%Outdir%\HeuristicLab.PluginInfrastructure.GUI.dll.config" "HeuristicLab.exe.config"
+ConfigMerger "%SolutionDir%\HeuristicLab.Hive.Client.Core\%Outdir%\HeuristicLab.Hive.Client.Core-3.2.dll.config" "HeuristicLab.exe.config"
