diff --git a/src/main/java/org/olat/commons/info/manager/InfoMessageFrontendManager.java b/src/main/java/org/olat/commons/info/manager/InfoMessageFrontendManager.java
index c59d8869e2260d331ea0b7db6bab9a122351adbf..a43fc80e807e7d5979cc444da3e4b8b73f366eff 100644
--- a/src/main/java/org/olat/commons/info/manager/InfoMessageFrontendManager.java
+++ b/src/main/java/org/olat/commons/info/manager/InfoMessageFrontendManager.java
@@ -24,11 +24,13 @@ import java.util.Date;
 import java.util.List;
 import java.util.Locale;
 
+import org.olat.basesecurity.IdentityRef;
 import org.olat.commons.info.model.InfoMessage;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.group.BusinessGroup;
+import org.olat.group.BusinessGroupRef;
 
 /**
  * 
@@ -62,7 +64,7 @@ public interface InfoMessageFrontendManager {
 	
 	public void deleteInfoMessage(InfoMessage infoMessage);
 	
-	public void updateInfoMessagesOfIdentity(BusinessGroup businessGroup, Identity identity);
+	public void updateInfoMessagesOfIdentity(BusinessGroupRef businessGroup, IdentityRef identity);
 	
 	public void removeInfoMessagesAndSubscriptionContext(BusinessGroup group);
 	
diff --git a/src/main/java/org/olat/commons/info/manager/InfoMessageFrontendManagerImpl.java b/src/main/java/org/olat/commons/info/manager/InfoMessageFrontendManagerImpl.java
index a361b29f9abff0547ffe17339ad640c07cb40fb7..518e29124305dd3ff660df85219baa2da5cca634 100644
--- a/src/main/java/org/olat/commons/info/manager/InfoMessageFrontendManagerImpl.java
+++ b/src/main/java/org/olat/commons/info/manager/InfoMessageFrontendManagerImpl.java
@@ -26,6 +26,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Set;
 
+import org.olat.basesecurity.IdentityRef;
 import org.olat.commons.info.model.InfoMessage;
 import org.olat.commons.info.model.InfoMessageImpl;
 import org.olat.commons.info.notification.InfoSubscriptionManager;
@@ -44,6 +45,7 @@ import org.olat.core.util.mail.MailContextImpl;
 import org.olat.core.util.mail.MailManager;
 import org.olat.core.util.mail.MailerResult;
 import org.olat.group.BusinessGroup;
+import org.olat.group.BusinessGroupRef;
 
 /**
  * 
@@ -164,16 +166,15 @@ public class InfoMessageFrontendManagerImpl implements InfoMessageFrontendManage
 	}
 	
 	@Override
-	public void updateInfoMessagesOfIdentity(BusinessGroup businessGroup, Identity identity) {
+	public void updateInfoMessagesOfIdentity(BusinessGroupRef businessGroup, IdentityRef identity) {
 		List<InfoMessage> infoMessages = infoMessageManager.loadInfoMessagesOfIdentity(businessGroup, identity);
 		for (InfoMessage infoMessage : infoMessages) {
 			Identity author = infoMessage.getAuthor();
-			Identity modifier = infoMessage.getModifier();
-			if (author != null && author.equals(identity)) {
+			if (author != null && author.getKey().equals(identity.getKey())) {
 				((InfoMessageImpl)infoMessage).setAuthor(null);
-				infoSubscriptionManager.markPublisherNews(infoMessage.getOLATResourceable(), infoMessage.getResSubPath());
 			} 
-			if (modifier != null && modifier.equals(identity)) {
+			Identity modifier = infoMessage.getModifier();
+			if (modifier != null && modifier.getKey().equals(identity.getKey())) {
 				infoMessage.setModifier(null);
 			}
 			infoMessageManager.saveInfoMessage(infoMessage);
diff --git a/src/main/java/org/olat/group/manager/BusinessGroupMembershipProcessor.java b/src/main/java/org/olat/group/manager/BusinessGroupMembershipProcessor.java
index 1f6bcbdeda2ba0e715d48bacedaa1421404efc48..5fe41b1e5b0b650f1eac7da0b55b1cab61289ee2 100644
--- a/src/main/java/org/olat/group/manager/BusinessGroupMembershipProcessor.java
+++ b/src/main/java/org/olat/group/manager/BusinessGroupMembershipProcessor.java
@@ -25,6 +25,7 @@ import java.util.List;
 import org.olat.basesecurity.GroupRoles;
 import org.olat.basesecurity.IdentityRef;
 import org.olat.basesecurity.model.IdentityRefImpl;
+import org.olat.commons.info.manager.InfoMessageFrontendManager;
 import org.olat.core.commons.services.notifications.NotificationsManager;
 import org.olat.core.gui.control.Event;
 import org.olat.core.util.coordinate.CoordinatorManager;
@@ -61,6 +62,8 @@ public class BusinessGroupMembershipProcessor implements InitializingBean, Gener
 	@Autowired
 	private NotificationsManager notificationsManager;
 	@Autowired
+	private InfoMessageFrontendManager infoMessageManager;
+	@Autowired
 	private RepositoryManager repositoryManager;
 	@Autowired
 	private BusinessGroupRelationDAO businessGroupRelationDao;
@@ -108,6 +111,7 @@ public class BusinessGroupMembershipProcessor implements InitializingBean, Gener
 		BusinessGroupRef groupRef = new BusinessGroupRefImpl(groupKey);
 		
 		if(!businessGroupRelationDao.hasAnyRole(identityRef, groupRef)) {
+			infoMessageManager.updateInfoMessagesOfIdentity(groupRef, identityRef);
 			notificationsManager.unsubscribeAllForIdentityAndResId(identityRef, groupRef.getKey());
 			
 			List<BGRepositoryEntryRelation> relations = businessGroupRelationDao
diff --git a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java
index db310cfa666fd4eda5c9cc5d97bd3ebdb785b788..de911c432189951d27548959a9c87841194a9733 100644
--- a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java
+++ b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java
@@ -1035,7 +1035,6 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD
 
 	private void removeParticipant(Identity ureqIdentity, Identity identity, BusinessGroup group, MailPackage mailing,
 			List<BusinessGroupModifiedEvent.Deferred> events) {
-		infoMessageManager.updateInfoMessagesOfIdentity(group, identity);
 		boolean removed = businessGroupRelationDAO.removeRole(identity, group, GroupRoles.participant.name());
 		if(removed) {
 			// notify currently active users of this business group