diff --git a/src/main/java/org/olat/modules/qpool/security/ProcesslessSecurityCallback.java b/src/main/java/org/olat/modules/qpool/security/ProcesslessSecurityCallback.java
index 6b51acfcbb8d281dfab4359eca6cf09af4bdcef7..54635978bfd939651e4408af618419f8b7b6062d 100644
--- a/src/main/java/org/olat/modules/qpool/security/ProcesslessSecurityCallback.java
+++ b/src/main/java/org/olat/modules/qpool/security/ProcesslessSecurityCallback.java
@@ -19,6 +19,7 @@
  */
 package org.olat.modules.qpool.security;
 
+import org.olat.modules.qpool.QPoolService;
 import org.olat.modules.qpool.QuestionItemSecurityCallback;
 import org.olat.modules.qpool.QuestionItemView;
 import org.olat.modules.qpool.QuestionPoolModule;
@@ -44,6 +45,8 @@ public class ProcesslessSecurityCallback implements QuestionItemSecurityCallback
 
 	@Autowired
 	private QuestionPoolModule qpoolModule;
+	@Autowired
+	private QPoolService qpoolService;
 	
 	@Override
 	public void setQuestionItemView(QuestionItemView itemView) {
@@ -161,7 +164,9 @@ public class ProcesslessSecurityCallback implements QuestionItemSecurityCallback
 	@Override
 	public boolean canRemove() {
 		return  questionItemSource.isRemoveEnabled()
-				&& (admin || itemView.isAuthor());
+				|| admin
+				|| poolAdmin
+				|| itemView.isAuthor();
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/modules/qpool/security/ReviewProcessSecurityCallback.java b/src/main/java/org/olat/modules/qpool/security/ReviewProcessSecurityCallback.java
index 1469e45c69b32a6280751afd1a8ba20f5736b854..d21d0f0e77d5be6629e5b7116d6d028fbd38151e 100644
--- a/src/main/java/org/olat/modules/qpool/security/ReviewProcessSecurityCallback.java
+++ b/src/main/java/org/olat/modules/qpool/security/ReviewProcessSecurityCallback.java
@@ -160,8 +160,10 @@ public class ReviewProcessSecurityCallback implements QuestionItemSecurityCallba
 
 	@Override
 	public boolean canRemove() {
-		return questionItemSource.isRemoveEnabled()
-				&& (admin || itemView.isAuthor() || (poolAdmin && qpoolModule.isPoolAdminAllowedToEditStatus()));
+		return  questionItemSource.isRemoveEnabled()
+				|| admin
+				|| poolAdmin
+				|| itemView.isAuthor();
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/modules/qpool/ui/datasource/PoolItemsSource.java b/src/main/java/org/olat/modules/qpool/ui/datasource/PoolItemsSource.java
index 85217be35e15a29bd1f8fb3919f6e2dc488240ff..e931da62f3311b2982ad15090ff65adc95966e73 100644
--- a/src/main/java/org/olat/modules/qpool/ui/datasource/PoolItemsSource.java
+++ b/src/main/java/org/olat/modules/qpool/ui/datasource/PoolItemsSource.java
@@ -46,6 +46,10 @@ public class PoolItemsSource extends DefaultItemsSource {
 		getDefaultParams().setPoolKey(pool.getKey());
 	}
 	
+	public Pool getPool() {
+		return pool;
+	}
+
 	@Override
 	public void removeFromSource(List<QuestionItemShort> items) {
 		qpoolService.removeItemsInPool(items, pool);
diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/BusinessGroupTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/BusinessGroupTreeNode.java
index 1f8619c050190b6f1234d5b593c96aee43fd32c2..74cbd57e352c1f87b4badb1370cb29b7fa963fb9 100644
--- a/src/main/java/org/olat/modules/qpool/ui/tree/BusinessGroupTreeNode.java
+++ b/src/main/java/org/olat/modules/qpool/ui/tree/BusinessGroupTreeNode.java
@@ -26,7 +26,6 @@ import org.olat.core.gui.components.tree.GenericTreeNode;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.id.Identity;
-import org.olat.core.id.Roles;
 import org.olat.core.id.context.BusinessControlFactory;
 import org.olat.group.BusinessGroup;
 import org.olat.group.BusinessGroupService;
@@ -93,11 +92,6 @@ public class BusinessGroupTreeNode extends GenericTreeNode implements Controller
 	
 	private boolean isShareAdmin(UserRequest ureq, BusinessGroup group) {
 		Identity identity = ureq.getIdentity();
-		Roles roles = ureq.getUserSession().getRoles();
-		return roles != null &&
-				(  roles.isOLATAdmin()
-				|| roles.isPoolAdmin()
-				|| businessGroupService.isIdentityInBusinessGroup(identity, group.getKey(), true, false, null)
-				);
+		return businessGroupService.isIdentityInBusinessGroup(identity, group.getKey(), true, false, null);
 	}
 }
diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/PoolTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/PoolTreeNode.java
index bac68c3f8f8e500c52ffd2bc689e55060a672910..03a5d5bfec5ac784257ac1af5dc4906838f6cbfb 100644
--- a/src/main/java/org/olat/modules/qpool/ui/tree/PoolTreeNode.java
+++ b/src/main/java/org/olat/modules/qpool/ui/tree/PoolTreeNode.java
@@ -26,7 +26,6 @@ import org.olat.core.gui.components.tree.GenericTreeNode;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.id.Identity;
-import org.olat.core.id.Roles;
 import org.olat.core.id.context.BusinessControlFactory;
 import org.olat.modules.qpool.Pool;
 import org.olat.modules.qpool.QPoolSecurityCallback;
@@ -79,7 +78,7 @@ public class PoolTreeNode extends GenericTreeNode implements ControllerTreeNode
 					ureq.getIdentity(),
 					ureq.getUserSession().getRoles(),
 					pool);
-			source.setRemoveEnabled(isPoolAdmin(ureq, pool));
+			source.setRemoveEnabled(isRemoveEnabled(ureq, pool));
 			WindowControl swControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, pool, null,
 					wControl, true);
 			questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback,
@@ -90,15 +89,9 @@ public class PoolTreeNode extends GenericTreeNode implements ControllerTreeNode
 		return questionsCtrl;
 	}
 	
-	private boolean isPoolAdmin(UserRequest ureq, Pool pool) {
+	private boolean isRemoveEnabled(UserRequest ureq, Pool pool) {
 		Identity identity = ureq.getIdentity();
-		Roles roles = ureq.getUserSession().getRoles();
-		return roles != null &&
-				(  roles.isOLATAdmin()
-				|| roles.isPoolAdmin()
-				|| pool.isPublicPool()
-				|| qpoolService.isOwner(identity, pool)
-				);
+		return pool.isPublicPool() || qpoolService.isOwner(identity, pool);
 	}
 
 }