diff --git a/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java b/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java
index e9380bd9875a181eec4a73d08941b905828b82ab..2940dc0aa9111ae4d7f571296bea910aa7f5a29f 100644
--- a/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java
+++ b/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java
@@ -67,6 +67,12 @@ public class SingleRoleRepositoryEntrySecurity implements RepositoryEntrySecurit
 
 	public void setWrappedSecurity(RepositoryEntrySecurity wrappedSecurity) {
 		this.wrappedSecurity = wrappedSecurity;
+		// current role no longer possible
+		if ((Role.participant.equals(currentRole) && !isParticipant())
+			|| (Role.coach.equals(currentRole) && !isCoach())
+			|| (Role.owner.equals(currentRole) && !isOwner())) {
+			currentRole = getDefaultRole();
+		}
 	}
 	
 	public Set<Role> getOtherRoles() {