diff --git a/app/assets/javascripts/issues.js b/app/assets/javascripts/issues.js
index 719d2c176c1361c7feccc66af57165c607a27914..9ba1a3f1bbafa72dbe776b738ed8602f993ddccb 100644
--- a/app/assets/javascripts/issues.js
+++ b/app/assets/javascripts/issues.js
@@ -11,7 +11,7 @@ function initIssuesSearch() {
       last_terms = terms;
 
       if (terms.length >= 2 || terms.length == 0) {
-        $.get(href, { 'f': status, 'terms': terms, 'milestone_id': milestone_id }, function(response) {
+        $.get(href, { 'status': status, 'terms': terms, 'milestone_id': milestone_id }, function(response) {
           $('#issues-table').html(response);
         });
       }
diff --git a/app/assets/stylesheets/gitlab_bootstrap/common.scss b/app/assets/stylesheets/gitlab_bootstrap/common.scss
index 3bb7cdbf7069ae21235a5b512594c1037cfd8e79..bf41db02ca4a57b9d6791279efaf66b9986da153 100644
--- a/app/assets/stylesheets/gitlab_bootstrap/common.scss
+++ b/app/assets/stylesheets/gitlab_bootstrap/common.scss
@@ -17,20 +17,42 @@
 .padded { padding:20px }
 .ipadded { padding:20px!important }
 .lborder { border-left:1px solid #eee }
-.no-padding { padding:0 !important; }
-.underlined { border-bottom: 1px solid #CCC; }
-.no-borders { border: none; }
-.vlink { color: $link_color !important; }
 .underlined_link { text-decoration: underline; }
-.borders { border: 1px solid #ccc; @include shade; }
 .hint { font-style: italic; color: #999; }
 .light { color: #888 }
 .tiny { font-weight: normal }
 
 /** PILLS & TABS**/
-.nav-pills a:hover { background-color: #888; }
-.nav-pills .active a { background-color: $style_color; }
+.nav-pills {
+  .active a {
+  }
+
+  > li > a {
+    @include border-radius(0);
+  }
+  &.nav-stacked {
+    > li > a {
+      border-left: 4px solid #EEE;
+      padding: 12px;
+    }
+    > .active > a {
+      border-color: #29B;
+      border-radius: 0;
+      background: #F1F1F1;
+      color: $style_color;
+      font-weight: bold;
+    }
+  }
+}
+
 .nav-pills > .active > a > i[class^="icon-"] { background: inherit; }
+
+
+
+/**
+ * nav-tabs
+ *
+ */
 .nav-tabs > li > a, .nav-pills > li > a { color: $style_color; }
 .nav.nav-tabs {
   li {
diff --git a/app/assets/stylesheets/sections/issues.scss b/app/assets/stylesheets/sections/issues.scss
index 79c592822ce414f9a73854f3968696e8809479c7..97df931993e060dc4881cb83f57c1d1f2688715b 100644
--- a/app/assets/stylesheets/sections/issues.scss
+++ b/app/assets/stylesheets/sections/issues.scss
@@ -54,10 +54,11 @@ input.check_all_issues {
   }
 }
 
-@media (min-width: 800px) { .issues_filters select { width: 160px; }  }
-@media (min-width: 1000px) { .issues_filters select { width: 200px; }  }
+@media (min-width: 800px)  { .issues_filters select { width: 160px; }  }
 @media (min-width: 1200px) { .issues_filters select { width: 220px; }  }
 
+@media (min-width: 800px)  { .issues_bulk_update select { width: 120px; }  }
+@media (min-width: 1200px) { .issues_bulk_update select { width: 160px; }  }
 
 #issues-table-holder {
   .issues_filters {
@@ -68,6 +69,7 @@ input.check_all_issues {
     form {
       float:left;
     }
+
     .update_selected_issues {
       position: relative;
       top:5px;
diff --git a/app/contexts/issues_list_context.rb b/app/contexts/issues_list_context.rb
index 9bbdfe1db39ecfde3afdd18c59e6fd9f8377b313..0cc73f99535b05831229698e3d5ab0f035d27da5 100644
--- a/app/contexts/issues_list_context.rb
+++ b/app/contexts/issues_list_context.rb
@@ -4,7 +4,7 @@ class IssuesListContext < BaseContext
   attr_accessor :issues
 
   def execute
-    @issues = case params[:f]
+    @issues = case params[:status]
               when issues_filter[:all] then @project.issues
               when issues_filter[:closed] then @project.issues.closed
               when issues_filter[:to_me] then @project.issues.opened.assigned(current_user)
diff --git a/app/views/issues/_filter.html.haml b/app/views/issues/_filter.html.haml
new file mode 100644
index 0000000000000000000000000000000000000000..6fc7b9d4c40d9fbb99b2eee368bf9eacd50f81a5
--- /dev/null
+++ b/app/views/issues/_filter.html.haml
@@ -0,0 +1,21 @@
+= form_tag project_issues_path(@project), method: 'get' do
+  %fieldset
+    %legend Status:
+    %ul.nav.nav-pills.nav-stacked
+      %li{class: ("active" if !params[:status])}
+        = link_to project_issues_path(@project, status: nil) do
+          Open
+      %li{class: ("active" if params[:status] == 'to_me')}
+        = link_to project_issues_path(@project, status: 'to_me') do
+          Assigned To Me
+      %li{class: ("active" if params[:status] == 'closed')}
+        = link_to project_issues_path(@project, status: 'closed') do
+          Closed
+      %li{class: ("active" if params[:status] == 'all')}
+        = link_to project_issues_path(@project, status: 'all') do
+          All
+
+  %fieldset
+    %hr
+    = link_to "Reset", project_issues_path(@project), class: 'btn right'
+
diff --git a/app/views/issues/index.html.haml b/app/views/issues/index.html.haml
index 7971a124b809182f74a7e166e2f243828b221dae..d5c29c780ce3423b6c326c8b1645a1de16406e6b 100644
--- a/app/views/issues/index.html.haml
+++ b/app/views/issues/index.html.haml
@@ -2,61 +2,47 @@
 .issues_content
   %h3.page_title
     Issues
-    %small (<span class=issue_counter>#{@issues.total_count}</span>)
+    %span (<span class=issue_counter>#{@issues.total_count}</span>)
     .right
       .span5
         - if can? current_user, :write_issue, @project
-          = link_to new_project_issue_path(@project, issue: { assignee_id: params[:assignee_id], milestone_id: params[:milestone_id]}), class: "right btn", title: "New Issue", id: "new_issue_link" do
+          = link_to new_project_issue_path(@project, issue: { assignee_id: params[:assignee_id], milestone_id: params[:milestone_id]}), class: "right btn primary", title: "New Issue", id: "new_issue_link" do
             %i.icon-plus
             New Issue
         = form_tag search_project_issues_path(@project), method: :get, remote: true, id: "issue_search_form", class: :right  do
           = hidden_field_tag :project_id, @project.id, { id: 'project_id' }
-          = hidden_field_tag :status, params[:f]
+          = hidden_field_tag :status, params[:status]
           = search_field_tag :issue_search, nil, { placeholder: 'Search', class: 'issue_search span3 right neib search-text-input' }
 
   .clearfix
 
-  %div#issues-table-holder.ui-box
-    .title
-      = check_box_tag "check_all_issues", nil, false, class: "check_all_issues left"
-
-
-      .issues_bulk_update.hide
-        = form_tag bulk_update_project_issues_path(@project), method: :post  do
-          %span.update_issues_text Update selected issues with &nbsp;
-          .left
-            = select_tag('update[status]', options_for_select(['open', 'closed']), prompt: "Status")
-            = select_tag('update[assignee_id]', options_from_collection_for_select(@project.users.all, "id", "name", params[:assignee_id]), prompt: "Assignee")
-            = select_tag('update[milestone_id]', options_from_collection_for_select(issues_active_milestones, "id", "title", params[:milestone_id]), prompt: "Milestone")
-            = hidden_field_tag 'update[issues_ids]', []
-            = hidden_field_tag :f, params[:f]
-          = button_tag "Save", class: "btn update_selected_issues btn-small save-btn"
-      .issues_filters
-        .left
-          %ul.nav.nav-pills.left
-            %li{class: ("active" if (params[:f] == issues_filter[:open] || !params[:f]))}
-              = link_to project_issues_path(@project, f: issues_filter[:open], milestone_id: params[:milestone_id]) do
-                Open
-            %li{class: ("active" if params[:f] == issues_filter[:closed])}
-              = link_to project_issues_path(@project, f: issues_filter[:closed], milestone_id: params[:milestone_id]) do
-                Closed
-            %li{class: ("active" if params[:f] == issues_filter[:to_me])}
-              = link_to project_issues_path(@project, f: issues_filter[:to_me], milestone_id: params[:milestone_id]) do
-                To Me
-            %li{class: ("active" if params[:f] == issues_filter[:all])}
-              = link_to project_issues_path(@project, f: issues_filter[:all], milestone_id: params[:milestone_id]) do
-                All
-
-        .right
-          = form_tag project_issues_path(@project), method: :get, class: :right  do
-            = select_tag(:label_name, options_for_select(issue_tags, params[:label_name]), prompt: "Labels")
-            = select_tag(:assignee_id, options_from_collection_for_select([unassigned_filter] + @project.users.all, "id", "name", params[:assignee_id]), prompt: "Assignee")
-            = select_tag(:milestone_id, options_from_collection_for_select([unassigned_filter] + issues_active_milestones, "id", "title", params[:milestone_id]), prompt: "Milestone")
-            = hidden_field_tag :f, params[:f]
+.row
+  .span3
+    = render 'filter', entity: 'issue'
+  .span9
+    %div#issues-table-holder.ui-box
+      .title
+        = check_box_tag "check_all_issues", nil, false, class: "check_all_issues left"
         .clearfix
+          .issues_bulk_update.hide
+            = form_tag bulk_update_project_issues_path(@project), method: :post  do
+              %span.update_issues_text Update selected issues with &nbsp;
+              .left
+                = select_tag('update[status]', options_for_select(['open', 'closed']), prompt: "Status")
+                = select_tag('update[assignee_id]', options_from_collection_for_select(@project.users.all, "id", "name", params[:assignee_id]), prompt: "Assignee")
+                = select_tag('update[milestone_id]', options_from_collection_for_select(issues_active_milestones, "id", "title", params[:milestone_id]), prompt: "Milestone")
+                = hidden_field_tag 'update[issues_ids]', []
+                = hidden_field_tag :status, params[:status]
+              = button_tag "Save", class: "btn update_selected_issues btn-small save-btn"
+          .issues_filters
+            = form_tag project_issues_path(@project), method: :get  do
+              = select_tag(:label_name, options_for_select(issue_tags, params[:label_name]), prompt: "Labels")
+              = select_tag(:assignee_id, options_from_collection_for_select([unassigned_filter] + @project.users.all, "id", "name", params[:assignee_id]), prompt: "Assignee")
+              = select_tag(:milestone_id, options_from_collection_for_select([unassigned_filter] + issues_active_milestones, "id", "title", params[:milestone_id]), prompt: "Milestone")
+              = hidden_field_tag :status, params[:status]
 
-    %ul#issues-table.well-list.issues_table
-      = render "issues"
+      %ul#issues-table.well-list.issues_table
+        = render "issues"
 
 :javascript
   $(function(){
diff --git a/app/views/merge_requests/index.html.haml b/app/views/merge_requests/index.html.haml
index 5b234bfbe02a4609c455287ad0c9cf54b644c942..f23dd46c98a1a7d3cdaf79d90078c12b9caa3f39 100644
--- a/app/views/merge_requests/index.html.haml
+++ b/app/views/merge_requests/index.html.haml
@@ -1,8 +1,9 @@
+- if can? current_user, :write_issue, @project
+  = link_to new_project_merge_request_path(@project), class: "right btn primary", title: "New Merge Request" do
+    %i.icon-plus
+    New Merge Request
 %h3.page_title
   Merge Requests
-  - if can? current_user, :write_issue, @project
-    = link_to new_project_merge_request_path(@project), class: "right btn", title: "New Merge Request" do
-      New Merge Request
 
 %br