diff --git a/app/controllers/wikis_controller.rb b/app/controllers/wikis_controller.rb
index a93afe114df68c026716911fa49963a0c77db016..0be71d465a28779db3ed646df9ac116fea73e49a 100644
--- a/app/controllers/wikis_controller.rb
+++ b/app/controllers/wikis_controller.rb
@@ -2,9 +2,9 @@ class WikisController < ProjectResourceController
   before_filter :authorize_read_wiki!
   before_filter :authorize_write_wiki!, only: [:edit, :create, :history]
   before_filter :authorize_admin_wiki!, only: :destroy
-  
+
   def pages
-    @wikis = @project.wikis.group(:slug).order("created_at")
+    @wikis = @project.wikis.last_revisions.order("created_at")
   end
 
   def show
@@ -49,7 +49,7 @@ class WikisController < ProjectResourceController
   def history
     @wikis = @project.wikis.where(slug: params[:id]).order("created_at")
   end
-  
+
   def destroy
     @wikis = @project.wikis.where(slug: params[:id]).delete_all
 
diff --git a/app/models/wiki.rb b/app/models/wiki.rb
index 252a97e8cca647dda190cec95f3a9bbe8129181e..53d52ec2a19760a7e6d37e38e8858c1ed92433cc 100644
--- a/app/models/wiki.rb
+++ b/app/models/wiki.rb
@@ -47,6 +47,19 @@ class Wiki < ActiveRecord::Base
     new_wiki
   end
 
+  # Scope with last revisions of pages (i.e. newest page per project_id
+  # and slug).
+  #
+  # return:
+  # ActiveRecord::Relation
+  #
+  def self.last_revisions
+    t1 = arel_table.alias(table_name + '1')
+    where(
+      id: from(t1).select(t1[:id].maximum).where(project_id: t1[:project_id], slug: t1[:slug])
+    )
+  end
+
   def set_slug
     self.slug = self.title.parameterize
   end
diff --git a/spec/factories.rb b/spec/factories.rb
index abc0d37470176e57eb8006e0af64dbb4fbbebb02..8357fe2127f358c3e82f06b9cc3c575e5d9ae6b2 100644
--- a/spec/factories.rb
+++ b/spec/factories.rb
@@ -138,9 +138,10 @@ FactoryGirl.define do
   end
 
   factory :wiki do
-    title
-    content
+    sequence(:title) { |n| "wiki#{n}" }
+    content "Content"
     user
+    project
   end
 
   factory :snippet do
diff --git a/spec/models/wiki_spec.rb b/spec/models/wiki_spec.rb
index 9750b81d303ecd1105a6c2bbe2d6b76aa79edd5b..a8967e95b200f45e26374be419f90375870c8d4a 100644
--- a/spec/models/wiki_spec.rb
+++ b/spec/models/wiki_spec.rb
@@ -32,4 +32,22 @@ describe Wiki do
     it { should validate_presence_of(:content) }
     it { should validate_presence_of(:user) }
   end
+
+  describe "#last_revisions" do
+    let(:project) { create(:project) }
+    before do
+      %w(p1 p2).each do |title|
+        %w(old new).each do |content|
+          create(:wiki, title: title, slug: title, project: project, content: content)
+        end
+      end
+    end
+    subject(:last_revisions) { project.wikis.last_revisions.all }
+
+    its(:count) { should == 2 }
+    it "should return each page once" do
+      last_revisions.map(&:title).should =~ %w(p1 p2)
+    end
+  end
+
 end