Index: /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs	(revision 15579)
+++ /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs	(revision 15580)
@@ -74,6 +74,6 @@
       idTextBox.ReadOnly = !enabled;
       storeButton.Enabled = enabled;
-      refreshableLightweightUserView.Enabled = enabled;
-      //refreshableLightweightUserView.Locked = !enabled;
+      //refreshableLightweightUserView.Enabled = enabled;
+      refreshableLightweightUserView.Locked = !enabled;
       //refreshableLightweightUserView.ReadOnly = !enabled;
     }
@@ -102,9 +102,9 @@
 
     private void Content_Refreshing(object sender, EventArgs e) {
-      storeButton.Enabled = false;
+      if (!Locked) storeButton.Enabled = false;
     }
 
     private void refreshableLightweightUserView_StorableStateChanged(object sender, EventArgs e) {
-      storeButton.Enabled = true;
+      if (!Locked) storeButton.Enabled = true;
     }
   }
Index: /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserView.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserView.cs	(revision 15579)
+++ /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserView.cs	(revision 15580)
@@ -59,4 +59,9 @@
       base.SetEnabledStateOfControls();
       this.showDetailsCheckBox.Enabled = false;
+      bool enabled = Content != null && !Locked;
+      addButton.Enabled = enabled;
+      removeButton.Enabled = enabled;
+      moveDownButton.Enabled = enabled;
+      moveUpButton.Enabled = enabled;
     }
 
Index: /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.cs	(revision 15579)
+++ /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.cs	(revision 15580)
@@ -58,4 +58,10 @@
     }
 
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      refreshButton.Enabled = FetchSelectedUsers != null && Content != null;
+      lightweightUserView.Locked = Locked;
+    }
+
     protected override void RefreshData() {
       Action completeRefreshAction = new Action(delegate {
@@ -79,9 +85,4 @@
         if (lightweightUserView.Content != null) OnStorableStateChanged();
       }
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      refreshButton.Enabled = FetchSelectedUsers != null && Content != null;
     }
 
Index: /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectPermissionsView.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectPermissionsView.cs	(revision 15579)
+++ /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectPermissionsView.cs	(revision 15580)
@@ -44,4 +44,9 @@
     private readonly Dictionary<Guid, HashSet<UserGroupBase>> userGroupDescendants = new Dictionary<Guid, HashSet<UserGroupBase>>();
 
+    private IEnumerable<UserGroupBase> addedPermissions;
+    private IEnumerable<UserGroupBase> removedPermissions;
+    private IEnumerable<UserGroupBase> addedIncludes;
+    private IEnumerable<UserGroupBase> removedIncludes;
+
     private readonly Color addedAssignmentColor = Color.FromArgb(255, 87, 191, 193); // #57bfc1
     private readonly Color removedAssignmentColor = Color.FromArgb(255, 236, 159, 72); // #ec9f48
@@ -215,4 +220,9 @@
 
     private UserGroupBase BuildPermissionsList(IEnumerable<UserGroupBase> usersAndGroups) {
+      addedPermissions = newAssignedPermissions.Except(assignedPermissions);
+      removedPermissions = assignedPermissions.Except(newAssignedPermissions);
+      addedIncludes = newInheritedPermissions.Except(inheritedPermissions);
+      removedIncludes = inheritedPermissions.Except(newInheritedPermissions);
+
       treeView.Nodes.Clear();
       if (!usersAndGroups.Any()) return null;
@@ -259,8 +269,4 @@
 
     private void BuildNode(UserGroupBase ug, TreeNode node) {
-      var addedPermissions = newAssignedPermissions.Except(assignedPermissions);
-      var removedPermissions = assignedPermissions.Except(newAssignedPermissions);
-      var addedIncludes = newInheritedPermissions.Except(inheritedPermissions);
-      var removedIncludes = inheritedPermissions.Except(newInheritedPermissions);
 
       if (newAssignedPermissions.Contains(ug)) {
Index: /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs	(revision 15579)
+++ /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs	(revision 15580)
@@ -861,5 +861,5 @@
               // remove project permissions
               if(reassignCascading) {
-                p.AssignedProjectResources.Clear();
+                p.ProjectPermissions.Clear();
               } else {
                 foreach(var item in p.ProjectPermissions.ToList().Where(x => removedPermissions.Contains(x.GrantedUserId))) {
