diff --git a/app/controllers/concerns/creates_commit.rb b/app/controllers/concerns/creates_commit.rb
index 936d9bab57e76115e9cf9e3dbe591b6bc93bea62..6f43ce5226d8e375570a54c3ca110c4250306eb1 100644
--- a/app/controllers/concerns/creates_commit.rb
+++ b/app/controllers/concerns/creates_commit.rb
@@ -82,7 +82,7 @@ module CreatesCommit
     return @merge_request if defined?(@merge_request)
 
     @merge_request = MergeRequestsFinder.new(current_user, project_id: @mr_target_project.id).execute.opened.
-      find_by(source_branch: @mr_source_branch, target_branch: @mr_target_branch)
+      find_by(source_branch: @mr_source_branch, target_branch: @mr_target_branch, source_project_id: @mr_source_project)
   end
 
   def different_project?
diff --git a/changelogs/unreleased/issue_25578.yml b/changelogs/unreleased/issue_25578.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e10f1d232afb2da9708ff702cc5b5d68e3bfe94b
--- /dev/null
+++ b/changelogs/unreleased/issue_25578.yml
@@ -0,0 +1,4 @@
+---
+title: Fix redirect after update file when user has forked project
+merge_request:
+author:
diff --git a/spec/controllers/projects/blob_controller_spec.rb b/spec/controllers/projects/blob_controller_spec.rb
index 3efef757ae2f6a241d17ef15ac4672bd20832cac..f35c5d992d95a64b9c28a5feca1528de36892c81 100644
--- a/spec/controllers/projects/blob_controller_spec.rb
+++ b/spec/controllers/projects/blob_controller_spec.rb
@@ -1,7 +1,7 @@
 require 'rails_helper'
 
 describe Projects::BlobController do
-  let(:project) { create(:project) }
+  let(:project) { create(:project, :public) }
   let(:user)    { create(:user) }
 
   before do
@@ -84,5 +84,35 @@ describe Projects::BlobController do
         end
       end
     end
+
+    context 'when user has forked project' do
+      let(:guest) { create(:user) }
+      let!(:forked_project) { Projects::ForkService.new(project, guest).execute }
+      let!(:merge_request) { create(:merge_request, source_project: project, target_project: project, source_branch: "fork-test-1", target_branch: "master") }
+
+      before { sign_in(guest) }
+
+      it "redirects to forked project new merge request" do
+        default_params[:target_branch] = "fork-test-1"
+        default_params[:create_merge_request] = 1
+
+        allow_any_instance_of(Files::UpdateService).to receive(:commit).and_return(:success)
+
+        put :update, default_params
+
+        expect(response).to redirect_to(
+          new_namespace_project_merge_request_path(
+            forked_project.namespace,
+            forked_project,
+            merge_request: {
+              source_project_id: forked_project.id,
+              target_project_id: project.id,
+              source_branch: "fork-test-1",
+              target_branch: "master"
+            }
+          )
+        )
+      end
+    end
   end
 end