diff --git a/app/controllers/projects/tags_controller.rb b/app/controllers/projects/tags_controller.rb
index 818c5d971e9784999faaa841301ccf30425a2f15..0b99165bf6201eb6b7aa52d03a167afa7e2a9ec0 100644
--- a/app/controllers/projects/tags_controller.rb
+++ b/app/controllers/projects/tags_controller.rb
@@ -8,7 +8,8 @@ class Projects::TagsController < Projects::ApplicationController
   before_filter :authorize_admin_project!, only: [:destroy]
 
   def index
-    @tags = Kaminari.paginate_array(@repository.tags.reverse).page(params[:page]).per(30)
+    sorted = VersionSorter.rsort(@repository.tag_names)
+    @tags = Kaminari.paginate_array(sorted).page(params[:page]).per(30)
   end
 
   def create
diff --git a/app/views/projects/tags/index.html.haml b/app/views/projects/tags/index.html.haml
index 53f3e67ff2cc5ee6159ca437dfc372b8438d7665..08122fb884fe0e6071b75f70c5ef246c36050cd2 100644
--- a/app/views/projects/tags/index.html.haml
+++ b/app/views/projects/tags/index.html.haml
@@ -7,13 +7,13 @@
       New tag
 
 %p
-  Tags give ability to mark specific points in history as being important
+  Tags give the ability to mark specific points in history as being important
 %hr
 
 - unless @tags.empty?
   %ul.bordered-list
     - @tags.each do |tag|
-      = render 'tag', tag: tag
+      = render 'tag', tag: @repository.find_tag(tag)
 
   = paginate @tags, theme: 'gitlab'