diff --git a/CHANGELOG b/CHANGELOG
index 2b7d5808e7eb6b78663a9fc3075c102de6b92516..e424506048923753c882f5c35f77948f1fd47838 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -91,6 +91,8 @@ v 8.3.0
   - Do not show build status unless builds are enabled and `.gitlab-ci.yml` is present
   - Persist runners registration token in database
   - Fix online editor should not remove newlines at the end of the file
+  - Expose Git's version in the admin area
+  - Show "New Merge Request" buttons on canonical repos when you have a fork (Josh Frye)
 
 v 8.2.3
   - Fix application settings cache not expiring after changes (Stan Hu)
diff --git a/app/views/projects/buttons/_dropdown.html.haml b/app/views/projects/buttons/_dropdown.html.haml
index 1f639fecc308decd4fb7bff135ec9c6be8ca2108..459e6da2fe2e2055ef0c57469aaddc55579a28f1 100644
--- a/app/views/projects/buttons/_dropdown.html.haml
+++ b/app/views/projects/buttons/_dropdown.html.haml
@@ -8,11 +8,12 @@
           = link_to url_for_new_issue(@project, only_path: true) do
             = icon('exclamation-circle fw')
             New issue
-      - if can?(current_user, :create_merge_request, @project)
+      - merge_project = can?(current_user, :create_merge_request, @project) ? @project : current_user.fork_of(@project)
+      - if merge_project
         %li
-          = link_to new_namespace_project_merge_request_path(@project.namespace, @project) do
+          = link_to new_namespace_project_merge_request_path(merge_project.namespace, merge_project) do
             = icon('tasks fw')
-            New merge request
+            New Merge Request
       - if can?(current_user, :create_snippet, @project)
         %li
           = link_to new_namespace_project_snippet_path(@project.namespace, @project) do
diff --git a/app/views/projects/merge_requests/index.html.haml b/app/views/projects/merge_requests/index.html.haml
index 086298e5af1996786f6ab90da97df16a153ed24f..972fce9ad3d09d3e87d8d314ca2c2953ab0fd348 100644
--- a/app/views/projects/merge_requests/index.html.haml
+++ b/app/views/projects/merge_requests/index.html.haml
@@ -6,9 +6,10 @@
   .controls
     = render 'shared/issuable/search_form', path: namespace_project_merge_requests_path(@project.namespace, @project)
 
-    - if can? current_user, :create_merge_request, @project
+    - merge_project = can?(current_user, :create_merge_request, @project) ? @project : current_user.fork_of(@project)
+    - if merge_project
       .pull-left.hidden-xs
-        = link_to new_namespace_project_merge_request_path(@project.namespace, @project), class: "btn btn-new", title: "New Merge Request" do
+        = link_to new_namespace_project_merge_request_path(merge_project.namespace, merge_project), class: "btn btn-new", title: "New Merge Request" do
           %i.fa.fa-plus
           New Merge Request
   = render 'shared/issuable/filter', type: :merge_requests
diff --git a/features/project/fork.feature b/features/project/fork.feature
index 22f68e5b340e28940dcc6cc814d80f49fcf6088e..4084935237022561d169cfe48675d726ecbf4d4a 100644
--- a/features/project/fork.feature
+++ b/features/project/fork.feature
@@ -1,3 +1,4 @@
+@forks
 Feature: Project Fork
   Background:
     Given I sign in as a user
@@ -14,3 +15,12 @@ Feature: Project Fork
     And I click link "Fork"
     When I fork to my namespace
     Then I should see a "Name has already been taken" warning
+
+  Scenario: Merge request on canonical repo goes to fork merge request page
+    Given I click link "Fork"
+    And I fork to my namespace
+    Then I should see the forked project page
+    When I visit project "Shop" page
+    Then I should see "New merge request"
+    And I goto the Merge Requests page
+    Then I should see "New merge request"
diff --git a/features/steps/project/fork.rb b/features/steps/project/fork.rb
index b0230add34f9e96410eab16a6ec6b9cd64a1a981..878ddea46ff5a9e9666fd86670dba5a790d16f32 100644
--- a/features/steps/project/fork.rb
+++ b/features/steps/project/fork.rb
@@ -30,4 +30,14 @@ class Spinach::Features::ProjectFork < Spinach::FeatureSteps
       click_link current_user.name
     end
   end
+
+  step 'I should see "New Merge Request"' do
+    expect(page).to have_content "New Merge Request"
+  end
+
+  step 'I goto the Merge Requests page' do
+    page.within '.page-sidebar-expanded' do
+      click_link "Merge Requests"
+    end
+  end
 end