diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb
index 843b44abd178a9c5e5a51e5156e782e0f60a3b8b..edced010811b9b9a7fe5a4579751a0d1755d8a09 100644
--- a/app/services/system_note_service.rb
+++ b/app/services/system_note_service.rb
@@ -274,7 +274,9 @@ class SystemNoteService
   # Check if a cross reference to a noteable from a mentioner already exists
   #
   # This method is used to prevent multiple notes being created for a mention
-  # when a issue is updated, for example.
+  # when a issue is updated, for example. The method also calls notes_for_mentioner
+  # to check if the mentioner is a commit, and return matches only on commit hash
+  # instead of project + commit, to avoid repeated mentions from forks.
   #
   # noteable  - Noteable object being referenced
   # mentioner - Mentionable object
diff --git a/spec/services/system_note_service_spec.rb b/spec/services/system_note_service_spec.rb
index 9b9732ea01f0f132583778a91a384d4d35f97f24..1bdc03af12d7baa18f6891ecc6e56b7a58be6b9b 100644
--- a/spec/services/system_note_service_spec.rb
+++ b/spec/services/system_note_service_spec.rb
@@ -431,10 +431,6 @@ describe SystemNoteService, services: true do
       let(:commit2) { forked_project.commit }
 
       before do
-        allow(commit0).to receive(:to_reference) {
-          noteable.project.to_reference +
-              commit0.class.reference_prefix + commit0.id
-        }
         described_class.cross_reference(noteable, commit0, author2)
       end