diff --git a/CHANGELOG b/CHANGELOG
index f0a647393921fab0e6770ccf9acf6e207e4d2721..96c6fc3adc5f9253e0537e68a7c8007417d40818 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -58,6 +58,7 @@ v 8.11.3 (unreleased)
   - Allow system info page to handle case where info is unavailable
   - Label list shows all issues (opened or closed) with that label
   - Don't show resolve conflicts link before MR status is updated
+  - Fix "Wiki" link not appearing in navigation for projects with external wiki
   - Fix IE11 fork button bug !598
   - Don't prevent viewing the MR when git refs for conflicts can't be found on disk
   - Allow system info page to handle case where info is unavailable
diff --git a/app/models/ability.rb b/app/models/ability.rb
index a49dd7039262df49d81f84d6a7f97837c1458728..c1df4a865f65b48571a2987422c14d3fb22c7da1 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -355,7 +355,7 @@ class Ability
         rules += named_abilities('project_snippet')
       end
 
-      unless project.wiki_enabled
+      unless project.has_wiki?
         rules += named_abilities('wiki')
       end
 
diff --git a/app/models/project.rb b/app/models/project.rb
index 8cf093be4c3bb8ef539783e7597f11a9f4e6d3b8..edf536e2f989a51a5dcca9b600e0a4fd2be1e3f2 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -680,6 +680,10 @@ class Project < ActiveRecord::Base
     update_column(:has_external_issue_tracker, services.external_issue_trackers.any?)
   end
 
+  def has_wiki?
+    wiki_enabled? || has_external_wiki?
+  end
+
   def external_wiki
     if has_external_wiki.nil?
       cache_has_external_wiki # Populate
diff --git a/spec/models/ability_spec.rb b/spec/models/ability_spec.rb
index aa3b2bbf47140e7f1e4895eae53ca92487205b02..c50ca38bdd905ed6e9cbf6e671e541fedb4695c3 100644
--- a/spec/models/ability_spec.rb
+++ b/spec/models/ability_spec.rb
@@ -282,4 +282,17 @@ describe Ability, lib: true do
       end
     end
   end
+
+  describe '.project_disabled_features_rules' do
+    let(:project) { build(:project) }
+
+    subject { described_class.project_disabled_features_rules(project) }
+
+    context 'wiki named abilities' do
+      it 'disables wiki abilities if the project has no wiki' do
+        expect(project).to receive(:has_wiki?).and_return(false)
+        expect(subject).to include(:read_wiki, :create_wiki, :update_wiki, :admin_wiki)
+      end
+    end
+  end
 end
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 9a3660012f995320f35f3ff3f657d7cbcf20786d..5475d7f1236f4789d8781c2e9735eaee6b7ab359 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -506,6 +506,18 @@ describe Project, models: true do
     end
   end
 
+  describe '#has_wiki?' do
+    let(:no_wiki_project) { build(:project, wiki_enabled: false, has_external_wiki: false) }
+    let(:wiki_enabled_project) { build(:project, wiki_enabled: true) }
+    let(:external_wiki_project) { build(:project, has_external_wiki: true) }
+
+    it 'returns true if project is wiki enabled or has external wiki' do
+      expect(wiki_enabled_project).to have_wiki
+      expect(external_wiki_project).to have_wiki
+      expect(no_wiki_project).not_to have_wiki
+    end
+  end
+
   describe '#external_wiki' do
     let(:project) { create(:project) }