diff --git a/src/main/java/org/olat/course/assessment/AssessmentMainController.java b/src/main/java/org/olat/course/assessment/AssessmentMainController.java
index cdba1f3fce0bf431e1fe49e268e486348b5683e6..3dec256812b1868834085acc6e0201ec1851a4ce 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentMainController.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentMainController.java
@@ -27,9 +27,11 @@ package org.olat.course.assessment;
 
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.commons.lang.StringEscapeUtils;
@@ -674,9 +676,16 @@ public class AssessmentMainController extends MainLayoutBasicController implemen
 	private List<Identity> getAllAssessableIdentities() {
 
 		List<Identity> participants = businessGroupService.getMembers(coachedGroups, GroupRoles.participant.name());
+		Set<Identity> duplicateKiller = new HashSet<>(participants);
+		
 		if((repoTutor && coachedGroups.isEmpty()) || (callback.mayAssessAllUsers() || callback.mayViewAllUsersAssessments())) {
 			List<Identity> courseParticipants = repositoryService.getMembers(re, GroupRoles.participant.name());
-			participants.addAll(courseParticipants);
+			for(Identity courseParticipant:courseParticipants) {
+				if(!duplicateKiller.contains(courseParticipant)) {
+					participants.add(courseParticipant);
+					duplicateKiller.add(courseParticipant);
+				}
+			}
 		}
 
 		if(callback.mayViewAllUsersAssessments() && participants.size() < 500) {
@@ -684,7 +693,11 @@ public class AssessmentMainController extends MainLayoutBasicController implemen
 			ICourse course = CourseFactory.loadCourse(ores);
 			CoursePropertyManager pm = course.getCourseEnvironment().getCoursePropertyManager();
 			List<Identity> assessedRsers = pm.getAllIdentitiesWithCourseAssessmentData(participants);
-			participants.addAll(assessedRsers);
+			for(Identity assessedRser:assessedRsers) {
+				if(!duplicateKiller.contains(assessedRser)) {
+					participants.add(assessedRser);
+				}
+			}
 		}
 		return participants;
 	}
diff --git a/src/main/java/org/olat/repository/RepositoryService.java b/src/main/java/org/olat/repository/RepositoryService.java
index 0bf4594b328ba559c4ba499f9902fb08d093f964..67920fe6f12ef3b96243dd0c8dedfb026e69117e 100644
--- a/src/main/java/org/olat/repository/RepositoryService.java
+++ b/src/main/java/org/olat/repository/RepositoryService.java
@@ -101,6 +101,14 @@ public interface RepositoryService {
 	 */
 	public List<Long> getAuthors(RepositoryEntryRef re);
 	
+	/**
+	 * Get the members of the repository entry (the method doesn't
+	 * follow the business groups).
+	 * 
+	 * @param re
+	 * @param roles
+	 * @return
+	 */
 	public List<Identity> getMembers(RepositoryEntryRef re, String... roles);
 	
 	public List<String> getRoles(Identity identity, RepositoryEntryRef re);