Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectResourcesView.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectResourcesView.cs	(revision 15995)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectResourcesView.cs	(revision 16040)
@@ -159,6 +159,8 @@
         || newIncludedResources.Contains(checkedResource)) {
         e.Cancel = true;
-      } else if (!HiveRoles.CheckAdminUserPermissions()) {
-          if (!HiveAdminClient.Instance.GetAvailableProjectAncestors(Content.Id).Any() || projectExclusiveResources.Contains(checkedResource)) {
+      } else if (!IsAdmin()) {
+          if (!HiveAdminClient.Instance.CheckOwnershipOfParentProject(Content, UserInformation.Instance.User.Id) 
+            || !HiveAdminClient.Instance.GetAvailableProjectAncestors(Content.Id).Any() 
+            || projectExclusiveResources.Contains(checkedResource)) {
             e.Cancel = true;
           }
@@ -367,5 +369,6 @@
           newNode.Checked = true;
           if(!HiveRoles.CheckAdminUserPermissions()) {
-            if (!HiveAdminClient.Instance.GetAvailableProjectAncestors(Content.Id).Any() 
+            if (!HiveAdminClient.Instance.CheckOwnershipOfParentProject(Content, UserInformation.Instance.User.Id) 
+              || !HiveAdminClient.Instance.GetAvailableProjectAncestors(Content.Id).Any() 
               || projectExclusiveResources.Contains(newResource)) {
               newNode.ForeColor = SystemColors.GrayText;
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectView.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectView.cs	(revision 15995)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectView.cs	(revision 16040)
@@ -111,4 +111,11 @@
       endDateTimePicker.Enabled = enabled && Content.EndDate.HasValue;
       indefiniteCheckBox.Enabled = enabled;
+
+      if (!IsAdmin() && !HiveAdminClient.Instance.CheckOwnershipOfParentProject(Content, UserInformation.Instance.User.Id)) {
+        ownerComboBox.Enabled = false;
+        startDateTimePicker.Enabled = false;
+        endDateTimePicker.Enabled = false;
+        indefiniteCheckBox.Enabled = false;
+      } 
     }
     #endregion
@@ -198,4 +205,5 @@
     private void startDateTimePicker_ValueChanged(object sender, EventArgs e) {
       if (Content == null) return;
+ 
       if (!Content.EndDate.HasValue || startDateTimePicker.Value > Content.EndDate)
         endDateTimePicker.Value = startDateTimePicker.Value;
@@ -206,4 +214,5 @@
     private void endDateTimePicker_ValueChanged(object sender, EventArgs e) {
       if (Content == null) return;
+
       if (endDateTimePicker.Value < startDateTimePicker.Value)
         endDateTimePicker.Value = startDateTimePicker.Value;
@@ -214,4 +223,5 @@
     private void indefiniteCheckBox_CheckedChanged(object sender, EventArgs e) {
       if (Content == null) return;
+
       var newEndDate = indefiniteCheckBox.Checked ? (DateTime?)null : endDateTimePicker.Value;
       endDateTimePicker.Enabled = !indefiniteCheckBox.Checked;
@@ -233,4 +243,8 @@
     }
 
+    private bool IsAdmin() {
+      return HiveRoles.CheckAdminUserPermissions();
+    }
+
     private void ShowHiveInformationDialog() {
       if (InvokeRequired) Invoke((Action)ShowHiveInformationDialog);
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectsView.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectsView.cs	(revision 15995)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectsView.cs	(revision 16040)
@@ -233,9 +233,23 @@
 
       lock (locker) {
+        // for details go to ChangeSelectedProject(..)
         if (!removeButton.Enabled) return;
         removeButton.Enabled = false;
       }
 
-      if (Content.Any(x => x.ParentProjectId == selectedProject.Id)) {
+      // double check of ChangeSelectedProject(..):
+      // if the user is no admin nor owner of a parent project
+      if (!IsAdmin() && !HiveAdminClient.Instance.CheckOwnershipOfParentProject(selectedProject, UserInformation.Instance.User.Id)) {
+        MessageBox.Show(
+          "Only admins and owners of parent projects are allowed to delete this project.",
+          "HeuristicLab Hive Administrator",
+          MessageBoxButtons.OK,
+          MessageBoxIcon.Error);
+        return;
+      }            
+
+
+      if (Content.Any(x => x.ParentProjectId == selectedProject.Id) 
+          || HiveAdminClient.Instance.ProjectDescendants[selectedProject.Id].Any()) {
         MessageBox.Show(
           "Only empty projects can be deleted.",
