diff --git a/app/models/concerns/mentionable.rb b/app/models/concerns/mentionable.rb
index 5b0ae41164200ed37a0eedfb994cacecdbcd4378..7ad8d5b7da7de66632f9502881b2cf46743999f0 100644
--- a/app/models/concerns/mentionable.rb
+++ b/app/models/concerns/mentionable.rb
@@ -61,7 +61,6 @@ module Mentionable
 
     ext = Gitlab::ReferenceExtractor.new(p, current_user)
     ext.analyze(text)
-
     (ext.issues + ext.merge_requests + ext.commits).uniq - [local_reference]
   end
 
diff --git a/lib/gitlab/markdown/redactor_filter.rb b/lib/gitlab/markdown/redactor_filter.rb
index 07ea6207d223993d0bd3e2e1e628b72089f65e6d..a1f3a8a8ebfc180a02fcf64b437947f9f6426e07 100644
--- a/lib/gitlab/markdown/redactor_filter.rb
+++ b/lib/gitlab/markdown/redactor_filter.rb
@@ -26,7 +26,7 @@ module Gitlab
           reference_type = node.attr('data-reference-filter')
           reference_filter = reference_type.constantize
 
-          reference_filter.user_can_reference?(current_user, node)
+          reference_filter.user_can_reference?(current_user, node, context)
         else
           true
         end
diff --git a/lib/gitlab/markdown/reference_filter.rb b/lib/gitlab/markdown/reference_filter.rb
index ea6136b330359827d6b5d3eefe2dee145f8808e6..8ad52479d3d5ecd35f10a7fc3c7286bbe81cf798 100644
--- a/lib/gitlab/markdown/reference_filter.rb
+++ b/lib/gitlab/markdown/reference_filter.rb
@@ -15,9 +15,12 @@ module Gitlab
     # Results:
     #   :references - A Hash of references that were found and replaced.
     class ReferenceFilter < HTML::Pipeline::Filter
-      def self.user_can_reference?(user, node)
+      def self.user_can_reference?(user, node, context)
         if node.has_attribute?('data-project')
-          project = Project.find(node.attr('data-project')) rescue nil
+          project_id = node.attr('data-project').to_i
+          return true if project_id == context[:project].id
+          
+          project = Project.find(project_id) rescue nil
           Ability.abilities.allowed?(user, :read_project, project)
         else
           true
diff --git a/lib/gitlab/markdown/reference_gatherer_filter.rb b/lib/gitlab/markdown/reference_gatherer_filter.rb
index d64671e95502e667f4e11a7952649b7f2a762347..171ff906da62ac0e82bb943875c01aa375534f7f 100644
--- a/lib/gitlab/markdown/reference_gatherer_filter.rb
+++ b/lib/gitlab/markdown/reference_gatherer_filter.rb
@@ -31,7 +31,7 @@ module Gitlab
         reference_type = node.attr('data-reference-filter')
         reference_filter = reference_type.constantize
 
-        return unless reference_filter.user_can_reference?(current_user, node)
+        return unless reference_filter.user_can_reference?(current_user, node, context)
 
         references = reference_filter.referenced_by(node)
         return unless references
diff --git a/lib/gitlab/markdown/user_reference_filter.rb b/lib/gitlab/markdown/user_reference_filter.rb
index 0d2be7499b711af086b2b759d80949ffbf93acfc..4567e9836922d8c1a1b138fb0a096c423e0c5c4f 100644
--- a/lib/gitlab/markdown/user_reference_filter.rb
+++ b/lib/gitlab/markdown/user_reference_filter.rb
@@ -42,7 +42,7 @@ module Gitlab
         end
       end
 
-      def self.user_can_reference?(user, node)
+      def self.user_can_reference?(user, node, context)
         if node.has_attribute?('data-group')
           group = Group.find(node.attr('data-group')) rescue nil
           Ability.abilities.allowed?(user, :read_group, group)
diff --git a/spec/lib/gitlab/reference_extractor_spec.rb b/spec/lib/gitlab/reference_extractor_spec.rb
index 6d7a067e4e0f67c3954e67837a513570d3b81695..088e34f050c317ab91272c69f0a6d63e5c3d4467 100644
--- a/spec/lib/gitlab/reference_extractor_spec.rb
+++ b/spec/lib/gitlab/reference_extractor_spec.rb
@@ -2,7 +2,7 @@ require 'spec_helper'
 
 describe Gitlab::ReferenceExtractor do
   let(:project) { create(:project) }
-  subject { Gitlab::ReferenceExtractor.new(project, project.owner) }
+  subject { Gitlab::ReferenceExtractor.new(project, project.creator) }
 
   it 'accesses valid user objects' do
     @u_foo = create(:user, username: 'foo')
@@ -102,7 +102,7 @@ describe Gitlab::ReferenceExtractor do
     let(:issue) { create(:issue, project: other_project) }
 
     before do
-      other_project.team << [project.owner, :developer]
+      other_project.team << [project.creator, :developer]
     end
 
     it 'handles project issue references' do
diff --git a/spec/support/mentionable_shared_examples.rb b/spec/support/mentionable_shared_examples.rb
index e3de0afb44825a6b84a7bb9723e22754dfb7538b..2b52b4c9b10741720b6f333afaed4ef985a57ec4 100644
--- a/spec/support/mentionable_shared_examples.rb
+++ b/spec/support/mentionable_shared_examples.rb
@@ -50,6 +50,8 @@ def common_mentionable_setup
     }
     extra_commits.each { |c| commitmap[c.short_id] = c }
 
+    allow(Project).to receive(:find).and_call_original
+    allow(Project).to receive(:find).with(project.id.to_s).and_return(project)
     allow(project.repository).to receive(:commit) { |sha| commitmap[sha] }
 
     set_mentionable_text.call(ref_string)