diff --git a/app/assets/stylesheets/sections/groups.scss b/app/assets/stylesheets/sections/groups.scss
index 60ec79acadbeed8c6ca2765ae0f0b2b2edc53375..e174f72882be58601d588a0b60e3b7a381cba959 100644
--- a/app/assets/stylesheets/sections/groups.scss
+++ b/app/assets/stylesheets/sections/groups.scss
@@ -7,3 +7,12 @@
 .member-search-form {
   float: left;
 }
+
+.milestone-row {
+  @include str-truncated(90%);
+}
+
+.label.label-default.project-name {
+  width: 80px;
+  @include str-truncated(80%);
+}
diff --git a/app/controllers/groups/milestones_controller.rb b/app/controllers/groups/milestones_controller.rb
index 235b27f53a91f946ec0a118a7de3ba6c618e74af..c4b87308e8b073fc60c9b489a7d8982332e38780 100644
--- a/app/controllers/groups/milestones_controller.rb
+++ b/app/controllers/groups/milestones_controller.rb
@@ -14,8 +14,8 @@ class Groups::MilestonesController < ApplicationController
   def show
     project_milestones = Milestone.where(project_id: group.projects)
     @group_milestone = Milestones::GroupService.new(project_milestones).milestone(title)
-    @project_issues = @group_milestone.filter_by(params[:status], "issues")
-    @project_merge_requests = @group_milestone.filter_by(params[:status], "merge_requests")
+    @issues = @group_milestone.issues
+    @merge_requests = @group_milestone.merge_requests
   end
 
   def update
diff --git a/app/models/group_milestone.rb b/app/models/group_milestone.rb
index 0faff39ae7aa24c1aea5d03ed258681897023490..45222f5329eae7ef0f5f3b44c2111fcddcf6fca6 100644
--- a/app/models/group_milestone.rb
+++ b/app/models/group_milestone.rb
@@ -65,16 +65,12 @@ class GroupMilestone
     state == 'closed'
   end
 
-  def opened_unassigned_issues
-    milestones.map{ |milestone| milestone.issues.opened.unassigned }
+  def issues
+    milestones.map{ |milestone| milestone.issues }.flatten.group_by(&:state)
   end
 
-  def opened_assigned_issues
-    milestones.map{ |milestone| milestone.issues.opened.assigned }
-  end
-
-  def closed_issues
-    milestones.map{ |milestone| milestone.issues.closed }
+  def merge_requests
+    milestones.map{ |milestone| milestone.merge_requests }.flatten.group_by(&:state)
   end
 
   def participants
diff --git a/app/views/groups/milestones/_issue.html.haml b/app/views/groups/milestones/_issue.html.haml
index 7009400a46ccdea2683cf28a9eacb6d44911fba3..759003bb56c4ff1ddcc85b07b393d3b9f590fdb6 100644
--- a/app/views/groups/milestones/_issue.html.haml
+++ b/app/views/groups/milestones/_issue.html.haml
@@ -1,6 +1,8 @@
 %li{ id: dom_id(issue, 'sortable'), class: 'issue-row', 'data-iid' => issue.iid }
-  %span.str-truncated
+  %span.milestone-row
     - project = issue.project
+    %span.label.label-default.project-name
+      = project.name
     = link_to [project, issue] do
       %span.cgray ##{issue.iid}
     = link_to_gfm issue.title, [project, issue]
diff --git a/app/views/groups/milestones/_issues.html.haml b/app/views/groups/milestones/_issues.html.haml
index 3fefb2f01079b824844fae903be83c2d8afe99fe..9f350b772bd90e324398e5981d32510384dc83d9 100644
--- a/app/views/groups/milestones/_issues.html.haml
+++ b/app/views/groups/milestones/_issues.html.haml
@@ -1,6 +1,6 @@
 .panel.panel-default
-  .panel-heading= name
+  .panel-heading= title
   %ul{ class: "well-list issues-sortable-list" }
-    - issues.each do |issue|
-      = render 'issue', issue: issue
-
+    - if issues
+      - issues.each do |issue|
+        = render 'issue', issue: issue
diff --git a/app/views/groups/milestones/_merge_request.html.haml b/app/views/groups/milestones/_merge_request.html.haml
index 4f11aaa74b7b7d167a0ea09f81df70d8c37c12bf..95d5de002df584fd946dcb3b656ed3190f0559c9 100644
--- a/app/views/groups/milestones/_merge_request.html.haml
+++ b/app/views/groups/milestones/_merge_request.html.haml
@@ -1,6 +1,11 @@
 %li{ id: dom_id(merge_request, 'sortable'),  class: 'mr-row', 'data-iid' => merge_request.iid }
-  %span.str-truncated
+  %span.milestone-row
     - project = merge_request.project
+    %span.label.label-default.project-name
+      = project.name
     = link_to [project, merge_request] do
       %span.cgray ##{merge_request.iid}
-    = link_to_gfm truncate(merge_request.title, length: 60), [project, merge_request]
+    = link_to_gfm merge_request.title, [project, merge_request]
+  .pull-right.assignee-icon
+    - if merge_request.assignee
+      = image_tag avatar_icon(merge_request.assignee.email, 16), class: "avatar s16"
diff --git a/app/views/groups/milestones/_merge_requests.html.haml b/app/views/groups/milestones/_merge_requests.html.haml
index 9bb213ffe328e7e0427389bdbdfa8476d4962ef9..ddf7f5ee55926d57a86b50d719cb523a6c92d0a9 100644
--- a/app/views/groups/milestones/_merge_requests.html.haml
+++ b/app/views/groups/milestones/_merge_requests.html.haml
@@ -1,5 +1,6 @@
 .panel.panel-default
-  .panel-heading= name
+  .panel-heading= title
   %ul{ class: "well-list merge_requests-sortable-list" }
-    - merge_requests.sort_by(&:position).each do |merge_request|
-      = render 'merge_request', merge_request: merge_request
+    - if merge_requests
+      - merge_requests.sort_by(&:position).each do |merge_request|
+        = render 'merge_request', merge_request: merge_request
diff --git a/app/views/groups/milestones/show.html.haml b/app/views/groups/milestones/show.html.haml
index a450e7d09a51617c71b622a9061a6b2520412eb0..d7bf6ae3c5c85305d5cb33dda682809c80d06112 100644
--- a/app/views/groups/milestones/show.html.haml
+++ b/app/views/groups/milestones/show.html.haml
@@ -52,19 +52,17 @@
 .tab-content
   .tab-pane.active#tab-issues
     .row
-      .col-md-4.responsive-side
-        = render 'groups/filter', entity: 'milestone'
-      .col-md-8
-        - @project_issues.each do |name, issues|
-          = render 'issues', name: name, issues: issues
+      .col-md-6
+        = render 'issues', title: "Open", issues: @issues["opened"]
+      .col-md-6
+        = render 'issues', title: "Closed", issues: @issues["closed"]
 
   .tab-pane#tab-merge-requests
     .row
-      .col-md-4.responsive-side
-        = render 'groups/filter', entity: 'milestone'
-      .col-md-8
-        - @project_merge_requests.each do |name, merge_requests|
-          = render 'merge_requests', name: name, merge_requests: merge_requests
+      .col-md-6
+        = render 'merge_requests', title: "Open", merge_requests: @merge_requests["opened"]
+      .col-md-6
+        = render 'merge_requests', title: "Closed", merge_requests: @merge_requests["closed"]
 
   .tab-pane#tab-participants
     %ul.bordered-list
diff --git a/app/views/layouts/nav/_group.html.haml b/app/views/layouts/nav/_group.html.haml
index 429848e3cbd1c12d0895811bbb0e626b7564353e..5d161a17bfcd96b3a32e21b2312a4398bc9f28c2 100644
--- a/app/views/layouts/nav/_group.html.haml
+++ b/app/views/layouts/nav/_group.html.haml
@@ -2,6 +2,9 @@
   = nav_link(path: 'groups#show', html_options: {class: 'home'}) do
     = link_to group_path(@group), title: "Home" do
       Activity
+  = nav_link(path: 'groups#milestones') do
+    = link_to group_milestones_path(@group) do
+      Milestones
   = nav_link(path: 'groups#issues') do
     = link_to issues_group_path(@group) do
       Issues
@@ -12,9 +15,6 @@
       Merge Requests
       - if current_user
         %span.count= current_user.cared_merge_requests.opened.of_group(@group).count
-  = nav_link(path: 'groups#milestones') do
-    = link_to group_milestones_path(@group) do
-      Milestones
   = nav_link(path: 'groups#members') do
     = link_to "Members", members_group_path(@group)