diff --git a/models/repo_list.go b/models/repo_list.go
index 883e3b98d..d13266f20 100644
--- a/models/repo_list.go
+++ b/models/repo_list.go
@@ -16,6 +16,18 @@ import (
 // RepositoryList contains a list of repositories
 type RepositoryList []*Repository
 
+func (repos RepositoryList) Len() int {
+	return len(repos)
+}
+
+func (repos RepositoryList) Less(i, j int) bool {
+	return repos[i].FullName() < repos[j].FullName()
+}
+
+func (repos RepositoryList) Swap(i, j int) {
+	repos[i], repos[j] = repos[j], repos[i]
+}
+
 // RepositoryListOfMap make list from values of map
 func RepositoryListOfMap(repoMap map[int64]*Repository) RepositoryList {
 	return RepositoryList(valuesRepository(repoMap))
diff --git a/routers/user/home.go b/routers/user/home.go
index c2c6a6701..581db850f 100644
--- a/routers/user/home.go
+++ b/routers/user/home.go
@@ -7,6 +7,7 @@ package user
 import (
 	"bytes"
 	"fmt"
+	"sort"
 
 	"github.com/Unknwon/com"
 	"github.com/Unknwon/paginater"
@@ -302,6 +303,7 @@ func Issues(ctx *context.Context) {
 	}
 
 	showRepos := models.RepositoryListOfMap(showReposMap)
+	sort.Sort(showRepos)
 	if err = showRepos.LoadAttributes(); err != nil {
 		ctx.Handle(500, "LoadAttributes", fmt.Errorf("%v", err))
 		return