diff --git a/CHANGELOG b/CHANGELOG
index 235a99b43270fb8c1491c8d733e39eddceed0932..95be0f8f2badcb08ab7f69ee5a0fd804b9f4fcfd 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -49,7 +49,7 @@ v 7.8.0
   - 
   - Add action property to merge request hook (Julien Bianchi)
   - 
-  - 
+  - Remove duplicates from group milestone participants list.
   - 
   - 
   - Add a new API function that retrieves all issues assigned to a single milestone (Justin Whear and Hannes Rosenögger)
diff --git a/app/models/group_milestone.rb b/app/models/group_milestone.rb
index 33915313789ae60e7a83cc1d2b785aa65e2ee4ba..7e4f16ebf167ee51bf45bd4cecc10d470fb980cc 100644
--- a/app/models/group_milestone.rb
+++ b/app/models/group_milestone.rb
@@ -66,15 +66,15 @@ class GroupMilestone
   end
 
   def issues
-    @group_issues ||= milestones.map { |milestone| milestone.issues }.flatten.group_by(&:state)
+    @group_issues ||= milestones.map(&:issues).flatten.group_by(&:state)
   end
 
   def merge_requests
-    @group_merge_requests ||= milestones.map { |milestone| milestone.merge_requests }.flatten.group_by(&:state)
+    @group_merge_requests ||= milestones.map(&:merge_requests).flatten.group_by(&:state)
   end
 
   def participants
-    milestones.map { |milestone| milestone.participants.uniq }.reject(&:empty?).flatten
+    @group_participants ||= milestones.map(&:participants).flatten.compact.uniq
   end
 
   def opened_issues