diff --git a/src/main/java/org/olat/course/nodes/members/MembersCourseNodeRunController.java b/src/main/java/org/olat/course/nodes/members/MembersCourseNodeRunController.java
index e4e557d4b7e02266004ddb3e29db030d6f505310..1af2eb150e8a14722c7b55f1a57f9830b0a951cf 100644
--- a/src/main/java/org/olat/course/nodes/members/MembersCourseNodeRunController.java
+++ b/src/main/java/org/olat/course/nodes/members/MembersCourseNodeRunController.java
@@ -79,7 +79,7 @@ public class MembersCourseNodeRunController extends BasicController {
 		RepositoryEntry courseRepositoryEntry = courseEnv.getCourseGroupManager().getCourseEntry();
 
 		List<Identity> owners;
-		List<Identity> coaches = new ArrayList<>();
+		List<Identity> coaches;
 		List<Identity> participants = new ArrayList<>();
 
 		boolean showOwners = config.getBooleanSafe(MembersCourseNode.CONFIG_KEY_SHOWOWNER);
@@ -105,8 +105,10 @@ public class MembersCourseNodeRunController extends BasicController {
 						MembersCourseNode.CONFIG_KEY_COACHES_CUR_ELEMENT)) {
 			
 			CourseGroupManager cgm = courseEnv.getCourseGroupManager();
-			MembersHelpers.addCoaches(config, cgm, businessGroupService, coaches);
+			coaches = MembersHelpers.getCoaches(config, cgm, businessGroupService);
 			showCoaches = true;
+		} else {
+			coaches = Collections.emptyList();
 		}
 		
 		boolean showParticipants = false;
@@ -115,8 +117,10 @@ public class MembersCourseNodeRunController extends BasicController {
 						MembersCourseNode.CONFIG_KEY_PARTICIPANTS_CUR_ELEMENT)) {
 			
 			CourseGroupManager cgm = courseEnv.getCourseGroupManager();
-			MembersHelpers.addParticipants(config, cgm, businessGroupService, participants);
+			participants = MembersHelpers.getParticipants(config, cgm, businessGroupService);
 			showParticipants = true;
+		} else {
+			participants = Collections.emptyList();
 		}
 		
 		Map<Long,CurriculumMemberInfos> curriculumInfos = null;
diff --git a/src/main/java/org/olat/course/nodes/members/MembersHelpers.java b/src/main/java/org/olat/course/nodes/members/MembersHelpers.java
index cad47689d7d41d3a20f3d062204f283eda01c77d..a1fc4cb1d99c022f25c59c4dc36b35502eb16781 100644
--- a/src/main/java/org/olat/course/nodes/members/MembersHelpers.java
+++ b/src/main/java/org/olat/course/nodes/members/MembersHelpers.java
@@ -21,6 +21,7 @@ package org.olat.course.nodes.members;
 
 import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -44,17 +45,33 @@ public class MembersHelpers {
 	private MembersHelpers() {
 		// CANNOT CREATE
 	}
+	
+	private static void deduplicateList(List<Identity> list) {
+		if(list == null || list.size() < 2) return;
+		
+		Set<Identity> deduplicates = new HashSet<>();
+		for(Iterator<Identity> it=list.iterator(); it.hasNext(); ) {
+			Identity identity = it.next();
+			if(deduplicates.contains(identity)) {
+				it.remove();
+			} else {
+				deduplicates.add(identity);
+			}
+		}
+	}
 
 	// -----------------------------------------------------
 	
 	public static List<Identity> getOwners(RepositoryService repositoryService, RepositoryEntry courseRepositoryEntry) {
-		return repositoryService.getMembers(courseRepositoryEntry, RepositoryEntryRelationType.all, GroupRoles.owner.name());
+		List<Identity> owners = repositoryService.getMembers(courseRepositoryEntry, RepositoryEntryRelationType.all, GroupRoles.owner.name());
+		deduplicateList(owners);
+		return owners;
 	}
 
 	// -----------------------------------------------------
 
-	public static void addCoaches(ModuleConfiguration moduleConfiguration, CourseGroupManager cgm, BusinessGroupService bgs, List<Identity> list) {
-	
+	public static List<Identity> getCoaches(ModuleConfiguration moduleConfiguration, CourseGroupManager cgm, BusinessGroupService bgs) {
+		List<Identity> list = new ArrayList<>();
 		if(moduleConfiguration.has(MembersCourseNode.CONFIG_KEY_COACHES_GROUP)) {
 			String coachGroupNames = moduleConfiguration.getStringValue(MembersCourseNode.CONFIG_KEY_COACHES_GROUP);
 			List<Long> coachGroupKeys = moduleConfiguration.getList(MembersCourseNode.CONFIG_KEY_COACHES_GROUP_ID, Long.class);
@@ -84,28 +101,31 @@ public class MembersHelpers {
 		if(moduleConfiguration.anyTrue(MembersCourseNode.CONFIG_KEY_COACHES_ALL)) {
 			list.addAll(retrieveCoachesFromCourseGroups(cgm));
 		}
+		
+		deduplicateList(list);
+		return list;
 	}
 	
-	public static List<Identity> retrieveCoachesFromAreas(List<Long> areaKeys, CourseGroupManager cgm) {
+	private static List<Identity> retrieveCoachesFromAreas(List<Long> areaKeys, CourseGroupManager cgm) {
 		List<Identity> coaches = cgm.getCoachesFromAreas(areaKeys);
 		return new ArrayList<>(new HashSet<>(coaches));
 	}
 	
-	public static List<Identity> retrieveCoachesFromCurriculumElements(List<Long> elementKeys, CourseGroupManager cgm) {
+	private static List<Identity> retrieveCoachesFromCurriculumElements(List<Long> elementKeys, CourseGroupManager cgm) {
 		List<Identity> coaches = cgm.getCoachesFromCurriculumElements(elementKeys);
 		return new ArrayList<>(new HashSet<>(coaches));
 	}
 
 	
-	public static List<Identity> retrieveCoachesFromGroups(List<Long> groupKeys, CourseGroupManager cgm) {
+	private static List<Identity> retrieveCoachesFromGroups(List<Long> groupKeys, CourseGroupManager cgm) {
 		return new ArrayList<>(new HashSet<>(cgm.getCoachesFromBusinessGroups(groupKeys)));
 	}
 	
-	public static List<Identity> retrieveCoachesFromCourse(CourseGroupManager cgm) {
+	private static List<Identity> retrieveCoachesFromCourse(CourseGroupManager cgm) {
 		return cgm.getCoaches();
 	}
 
-	public static List<Identity> retrieveCoachesFromCourseGroups(CourseGroupManager cgm) {
+	private static List<Identity> retrieveCoachesFromCourseGroups(CourseGroupManager cgm) {
 		Set<Identity> uniq = new HashSet<>();
 		uniq.addAll(cgm.getCoachesFromAreas());
 		uniq.addAll(cgm.getCoachesFromBusinessGroups());
@@ -115,7 +135,8 @@ public class MembersHelpers {
 	
 	// -----------------------------------------------------
 	
-	public static void addParticipants(ModuleConfiguration moduleConfiguration, CourseGroupManager cgm, BusinessGroupService bgs, List<Identity> list) {
+	public static List<Identity> getParticipants(ModuleConfiguration moduleConfiguration, CourseGroupManager cgm, BusinessGroupService bgs) {
+		List<Identity> list = new ArrayList<>();
 
 		if(moduleConfiguration.has(MembersCourseNode.CONFIG_KEY_PARTICIPANTS_GROUP)) {
 			String participantGroupNames = moduleConfiguration.getStringValue(MembersCourseNode.CONFIG_KEY_PARTICIPANTS_GROUP);
@@ -147,21 +168,23 @@ public class MembersHelpers {
 		if(moduleConfiguration.anyTrue(MembersCourseNode.CONFIG_KEY_PARTICIPANTS_ALL)) {
 			list.addAll(retrieveParticipantsFromCourseGroups(cgm));
 		}
+		deduplicateList(list);
+		return list;
 	}
 	
-	public static List<Identity> retrieveParticipantsFromAreas(List<Long> areaKeys, CourseGroupManager cgm) {
+	private static List<Identity> retrieveParticipantsFromAreas(List<Long> areaKeys, CourseGroupManager cgm) {
 		return cgm.getParticipantsFromAreas(areaKeys);
 	}
 	
-	public static List<Identity> retrieveParticipantsFromGroups(List<Long> groupKeys, CourseGroupManager cgm) {
+	private static List<Identity> retrieveParticipantsFromGroups(List<Long> groupKeys, CourseGroupManager cgm) {
 		return cgm.getParticipantsFromBusinessGroups(groupKeys);
 	}
 	
-	public static List<Identity> retrieveParticipantsFromCurriculumElements(List<Long> elementKeys, CourseGroupManager cgm) {
+	private static List<Identity> retrieveParticipantsFromCurriculumElements(List<Long> elementKeys, CourseGroupManager cgm) {
 		return cgm.getParticipantsFromCurriculumElements(elementKeys);
 	}
 	
-	public static List<Identity> retrieveParticipantsFromCourse(CourseGroupManager cgm) {
+	private static List<Identity> retrieveParticipantsFromCourse(CourseGroupManager cgm) {
 		return cgm.getParticipants();
 	}
 	
diff --git a/src/main/java/org/olat/course/nodes/members/MembersPeekViewController.java b/src/main/java/org/olat/course/nodes/members/MembersPeekViewController.java
index e948a2fb90e1c4c118cb54c9ec3f7a78d159b5c3..7da1838091c1785a1094998f376eee8f4ba90f44 100644
--- a/src/main/java/org/olat/course/nodes/members/MembersPeekViewController.java
+++ b/src/main/java/org/olat/course/nodes/members/MembersPeekViewController.java
@@ -127,14 +127,18 @@ public class MembersPeekViewController extends BasicController {
 			owners = new ArrayList<>();
 		}
 		
-		List<Identity> coaches = new ArrayList<>();
+		List<Identity> coaches;
 		if(withCoaches) {
-			MembersHelpers.addCoaches(config, cgm, businessGroupService, coaches);
+			coaches = MembersHelpers.getCoaches(config, cgm, businessGroupService);
+		} else {
+			coaches = new ArrayList<>();
 		}
 		
-		List<Identity> participants = new ArrayList<>();
+		List<Identity> participants;
 		if(withParticipants) {
-			MembersHelpers.addParticipants(config, cgm, businessGroupService, participants);
+			participants = MembersHelpers.getParticipants(config, cgm, businessGroupService);
+		} else {
+			participants = new ArrayList<>();
 		}
 		
 		MembersCourseNodeConfiguration nodeConfig = (MembersCourseNodeConfiguration)CourseNodeFactory.getInstance().getCourseNodeConfiguration("cmembers");