diff --git a/src/main/java/org/olat/commons/info/ui/InfoDisplayController.java b/src/main/java/org/olat/commons/info/ui/InfoDisplayController.java
index 96d2ca32e806e8917ab21f0a032acd0731c4013f..ee786cb3bf69e76d4756f039d4524d2efd90dfcb 100644
--- a/src/main/java/org/olat/commons/info/ui/InfoDisplayController.java
+++ b/src/main/java/org/olat/commons/info/ui/InfoDisplayController.java
@@ -225,7 +225,7 @@ public class InfoDisplayController extends FormBasicController {
 			DateElement dateEl = DateComponentFactory.createDateElementWithYear(dateCmpName, info.getCreationDate());
 			flc.add(dateCmpName, dateEl);
 			
-			if(secCallback.canEdit() && (ureq.getIdentity().equals(info.getAuthor()) || secCallback.canDelete())) {
+			if(secCallback.canEdit(info)) {
 				String editName = "info.edit." + info.getKey();
 				FormLink link = uifactory.addFormLink(editName, "edit", "edit", flc, Link.BUTTON_SMALL);
 				link.setElementCssClass("o_sel_info_edit_msg");
diff --git a/src/main/java/org/olat/commons/info/ui/InfoSecurityCallback.java b/src/main/java/org/olat/commons/info/ui/InfoSecurityCallback.java
index d5c73b617100db3a22813ee0efc407a121d8e301..562bed7e944b662618d4aa5557c757c60db2ce52 100644
--- a/src/main/java/org/olat/commons/info/ui/InfoSecurityCallback.java
+++ b/src/main/java/org/olat/commons/info/ui/InfoSecurityCallback.java
@@ -20,6 +20,8 @@
 
 package org.olat.commons.info.ui;
 
+import org.olat.commons.info.model.InfoMessage;
+
 /**
  * 
  * Description:<br>
@@ -35,7 +37,7 @@ public interface InfoSecurityCallback {
 	
 	public boolean canAdd();
 	
-	public boolean canEdit();
+	public boolean canEdit(InfoMessage infoMessage);
 	
 	public boolean canDelete();
 	
diff --git a/src/main/java/org/olat/course/nodes/info/InfoRunController.java b/src/main/java/org/olat/course/nodes/info/InfoRunController.java
index 6245d6f1dbe69fcfc292fcc3a4d699cbe907f5c4..89278a096a943f5bebb27fcde164049a837cd40d 100644
--- a/src/main/java/org/olat/course/nodes/info/InfoRunController.java
+++ b/src/main/java/org/olat/course/nodes/info/InfoRunController.java
@@ -26,6 +26,7 @@ import java.util.StringTokenizer;
 
 import org.olat.commons.info.manager.InfoMessageFrontendManager;
 import org.olat.commons.info.manager.MailFormatter;
+import org.olat.commons.info.model.InfoMessage;
 import org.olat.commons.info.notification.InfoSubscription;
 import org.olat.commons.info.notification.InfoSubscriptionManager;
 import org.olat.commons.info.ui.InfoDisplayController;
@@ -130,7 +131,7 @@ public class InfoRunController extends BasicController {
 				|| roles.isOLATAdmin();
 		}
 
-		InfoSecurityCallback secCallback = new InfoCourseSecurityCallback(canAdd, canAdmin);
+		InfoSecurityCallback secCallback = new InfoCourseSecurityCallback(getIdentity(), canAdd, canAdmin);
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		
 		infoDisplayController = new InfoDisplayController(ureq, wControl, config, secCallback, infoResourceable, resSubPath, businessPath);
@@ -206,10 +207,12 @@ public class InfoRunController extends BasicController {
 	private class InfoCourseSecurityCallback implements InfoSecurityCallback {
 		private final boolean canAdd;
 		private final boolean canAdmin;
+		private final Identity identity;
 		
-		public InfoCourseSecurityCallback(boolean canAdd, boolean canAdmin) {
+		public InfoCourseSecurityCallback(Identity identity, boolean canAdd, boolean canAdmin) {
 			this.canAdd = canAdd;
 			this.canAdmin = canAdmin;
+			this.identity = identity;
 		}
 		
 		@Override
@@ -223,8 +226,8 @@ public class InfoRunController extends BasicController {
 		}
 
 		@Override
-		public boolean canEdit() {
-			return canAdmin;
+		public boolean canEdit(InfoMessage infoMessage) {
+			return identity.equals(infoMessage.getAuthor()) || canAdmin;
 		}
 
 		@Override
diff --git a/src/main/java/org/olat/group/ui/run/InfoGroupRunController.java b/src/main/java/org/olat/group/ui/run/InfoGroupRunController.java
index 6e229c77dccabcf88e700c714886ef136d6be3f7..102d4191933fad41a80fedc9d0d6bb303a076156 100644
--- a/src/main/java/org/olat/group/ui/run/InfoGroupRunController.java
+++ b/src/main/java/org/olat/group/ui/run/InfoGroupRunController.java
@@ -25,6 +25,7 @@ import java.util.StringTokenizer;
 
 import org.olat.commons.info.manager.InfoMessageFrontendManager;
 import org.olat.commons.info.manager.MailFormatter;
+import org.olat.commons.info.model.InfoMessage;
 import org.olat.commons.info.notification.InfoSubscription;
 import org.olat.commons.info.notification.InfoSubscriptionManager;
 import org.olat.commons.info.ui.InfoDisplayController;
@@ -42,6 +43,7 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
+import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.util.UserSession;
 import org.olat.core.util.resource.OresHelper;
@@ -87,7 +89,7 @@ public class InfoGroupRunController extends BasicController {
 		}
 
 		boolean canAddAndEdit = isAdmin || canAccess;
-		InfoSecurityCallback secCallback = new InfoGroupSecurityCallback(canAddAndEdit, isAdmin);
+		InfoSecurityCallback secCallback = new InfoGroupSecurityCallback(getIdentity(), canAddAndEdit, isAdmin);
 		infoDisplayController = new InfoDisplayController(ureq, wControl, secCallback, businessGroup, resSubPath, businessPath);
 		SendMailOption subscribers = new SendSubscriberMailOption(infoResourceable, resSubPath, messageManager);
 		infoDisplayController.addSendMailOptions(subscribers);
@@ -162,10 +164,12 @@ public class InfoGroupRunController extends BasicController {
 	private class InfoGroupSecurityCallback implements InfoSecurityCallback {
 		private final boolean canAdd;
 		private final boolean canAdmin;
+		private final Identity identity;
 		
-		public InfoGroupSecurityCallback(boolean canAdd, boolean canAdmin) {
+		public InfoGroupSecurityCallback(Identity identity, boolean canAdd, boolean canAdmin) {
 			this.canAdd = canAdd;
 			this.canAdmin = canAdmin;
+			this.identity = identity;
 		}
 		
 		@Override
@@ -179,8 +183,8 @@ public class InfoGroupRunController extends BasicController {
 		}
 
 		@Override
-		public boolean canEdit() {
-			return canAdd;
+		public boolean canEdit(InfoMessage infoMessage) {
+			return identity.equals(infoMessage.getAuthor()) || canAdmin;
 		}
 
 		@Override