diff --git a/routers/routes/routes.go b/routers/routes/routes.go
index 6287981894..6445c0a9af 100644
--- a/routers/routes/routes.go
+++ b/routers/routes/routes.go
@@ -652,7 +652,7 @@ func RegisterRoutes(m *macaron.Macaron) {
 
 	m.Group("/:username/:reponame", func() {
 		m.Post("/topics", repo.TopicsPost)
-	}, context.RepoMustNotBeArchived(), context.RepoAssignment(), reqRepoAdmin)
+	}, context.RepoAssignment(), context.RepoMustNotBeArchived(), reqRepoAdmin)
 
 	m.Group("/:username/:reponame", func() {
 		m.Group("", func() {
diff --git a/templates/repo/home.tmpl b/templates/repo/home.tmpl
index 6133464549..5e07f0f39d 100644
--- a/templates/repo/home.tmpl
+++ b/templates/repo/home.tmpl
@@ -25,9 +25,9 @@
 		</div>
 		<div class="ui repo-topic" id="repo-topic">
 		{{range .Topics}}<a class="ui green basic label topic" style="cursor:pointer;" href="{{AppSubUrl}}/explore/repos?q={{.Name}}&topic=1">{{.Name}}</a>{{end}}
-		{{if .Permission.IsAdmin}}<a id="manage_topic" style="cursor:pointer;margin-left:10px;">{{.i18n.Tr "repo.topic.manage_topics"}}</a>{{end}}
+		{{if and .Permission.IsAdmin (not .Repository.IsArchived)}}<a id="manage_topic" style="cursor:pointer;margin-left:10px;">{{.i18n.Tr "repo.topic.manage_topics"}}</a>{{end}}
 		</div>
-		{{if .Permission.IsAdmin}}
+		{{if and .Permission.IsAdmin (not .Repository.IsArchived)}}
 		<div class="ui repo-topic-edit grid form segment error" id="topic_edit" style="display:none">
 			<div class="fourteen wide column">
 				<div class="field">