Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Administration/3.4/Views/ResourcesView.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Administration/3.4/Views/ResourcesView.cs	(revision 6454)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Administration/3.4/Views/ResourcesView.cs	(revision 6464)
@@ -38,4 +38,9 @@
     }
 
+    private const string ungroupedGroupName = "UNGROUPED";
+    private const int slaveImageIndex = 0;
+    private const int slaveGroupImageIndex = 1;
+
+
     public ResourcesView() {
       InitializeComponent();
@@ -68,9 +73,9 @@
 
         //rebuild
-        TreeNode ungrp = new TreeNode("UNGROUPED");
-        ungrp.ImageIndex = treeSlaveGroup.ImageList.Images.Count - 1;
+        TreeNode ungrp = new TreeNode(ungroupedGroupName);
+        ungrp.ImageIndex = slaveGroupImageIndex;
         ungrp.SelectedImageIndex = ungrp.ImageIndex;
         var newGroup = new SlaveGroup();
-        newGroup.Name = "UNGROUPED";
+        newGroup.Name = ungroupedGroupName;
         newGroup.Id = Guid.NewGuid();
         newGroup.Description = "Contains slaves which are in no group";
@@ -82,5 +87,5 @@
             if (g.ParentResourceId == null) {
               TreeNode tn = new TreeNode();
-              tn.ImageIndex = treeSlaveGroup.ImageList.Images.Count - 1;
+              tn.ImageIndex = slaveGroupImageIndex;
               tn.SelectedImageIndex = tn.ImageIndex;
 
@@ -89,4 +94,5 @@
 
               BuildSlaveGroupTree(g, tn);
+              tn.ExpandAll();
               treeSlaveGroup.Nodes.Add(tn);
             }
@@ -94,5 +100,5 @@
             if (g.ParentResourceId == null) {
               var stn = new TreeNode(g.Name);
-              stn.ImageIndex = 0;
+              stn.ImageIndex = slaveImageIndex;
               stn.SelectedImageIndex = stn.ImageIndex;
               stn.Tag = g;
@@ -101,4 +107,5 @@
           }
         }
+        ungrp.ExpandAll();
         treeSlaveGroup.Nodes.Add(ungrp);
       }
@@ -111,5 +118,5 @@
           stn.ImageIndex = 0;
         } else if (r is SlaveGroup) {
-          stn.ImageIndex = treeSlaveGroup.ImageList.Images.Count - 1;
+          stn.ImageIndex = slaveGroupImageIndex;
         }
         stn.SelectedImageIndex = stn.ImageIndex;
@@ -204,4 +211,10 @@
 
         if (destNode.TreeView == newNode.TreeView) {
+          if (destNode.Text == ungroupedGroupName || (destNode.Parent != null && destNode.Parent.Text == ungroupedGroupName)) {
+            MessageBox.Show(String.Format("You can't drag items to the {0} group.{1}This group only contains slaves which haven't yet been assigned to a real group.",
+              ungroupedGroupName, Environment.NewLine), "HeuristicLab Hive Administration", MessageBoxButtons.OK, MessageBoxIcon.Information);
+            return;
+          }
+
           SlaveGroup sgrp = null;
           if (destNode.Tag != null && destNode.Tag is SlaveGroup) {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Administration/3.4/Views/SlaveView.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Administration/3.4/Views/SlaveView.Designer.cs	(revision 6454)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Administration/3.4/Views/SlaveView.Designer.cs	(revision 6464)
@@ -69,4 +69,5 @@
       this.txtSlaveState.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtSlaveState.Enabled = false;
       this.txtSlaveState.Location = new System.Drawing.Point(120, 186);
       this.txtSlaveState.Name = "txtSlaveState";
@@ -78,4 +79,5 @@
       this.txtOS.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtOS.Enabled = false;
       this.txtOS.Location = new System.Drawing.Point(120, 160);
       this.txtOS.Name = "txtOS";
@@ -105,4 +107,5 @@
       this.txtDetailsDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtDetailsDescription.Enabled = false;
       this.txtDetailsDescription.Location = new System.Drawing.Point(120, 56);
       this.txtDetailsDescription.Name = "txtDetailsDescription";
@@ -127,5 +130,5 @@
       this.txtName.Size = new System.Drawing.Size(249, 20);
       this.txtName.TabIndex = 21;
-      this.txtName.TextChanged += new System.EventHandler(this.txtName_TextChanged_1);
+      this.txtName.TextChanged += new System.EventHandler(this.txtName_TextChanged);
       // 
       // txtCPU
@@ -133,4 +136,5 @@
       this.txtCPU.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtCPU.Enabled = false;
       this.txtCPU.Location = new System.Drawing.Point(120, 82);
       this.txtCPU.Name = "txtCPU";
@@ -142,4 +146,5 @@
       this.txtMemory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtMemory.Enabled = false;
       this.txtMemory.Location = new System.Drawing.Point(120, 108);
       this.txtMemory.Name = "txtMemory";
@@ -151,4 +156,5 @@
       this.txtLastHeartbeat.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtLastHeartbeat.Enabled = false;
       this.txtLastHeartbeat.Location = new System.Drawing.Point(120, 212);
       this.txtLastHeartbeat.Name = "txtLastHeartbeat";
@@ -205,4 +211,5 @@
       this.txtFreeMemory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtFreeMemory.Enabled = false;
       this.txtFreeMemory.Location = new System.Drawing.Point(120, 134);
       this.txtFreeMemory.Name = "txtFreeMemory";
@@ -214,4 +221,5 @@
       this.txtId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtId.Enabled = false;
       this.txtId.Location = new System.Drawing.Point(120, 30);
       this.txtId.Name = "txtId";
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Administration/3.4/Views/SlaveView.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Administration/3.4/Views/SlaveView.cs	(revision 6454)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Administration/3.4/Views/SlaveView.cs	(revision 6464)
@@ -66,5 +66,5 @@
           Slave ct = (Slave)Content;
           txtName.Text = ct.Name;
-          txtCPU.Text = ct.Cores.ToString() + " Cores @ " + ct.CpuSpeed.ToString() + " Mhz, Arch.: " + ct.CpuArchitecture.ToString();
+          txtCPU.Text = string.Format("{0} Cores @ {1} Mhz, Arch.: {2}", ct.Cores.ToString(), ct.CpuSpeed.ToString(), ct.CpuArchitecture.ToString());
           txtDetailsDescription.Text = ct.Description;
           txtMemory.Text = ct.Memory.ToString();
@@ -78,12 +78,8 @@
           txtName.Text = ct.Name;
           ShowSlaveUI(false);
-        } else
+        } else {
           throw new Exception("Unknown Resource in SlaveView");
-
+        }
       }
-    }
-
-    void txtName_TextChanged(object sender, EventArgs e) {
-      throw new NotImplementedException();
     }
 
@@ -105,4 +101,5 @@
       txtFreeMemory.Visible = show;
       txtId.Visible = show;
+      txtName.Enabled = !show;
     }
 
@@ -111,5 +108,5 @@
     }
 
-    private void txtName_TextChanged_1(object sender, EventArgs e) {
+    private void txtName_TextChanged(object sender, EventArgs e) {
       if (Content != null && Content is SlaveGroup) {
         Content.Name = txtName.Text;
