diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 6338bff042..82925e9c0f 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -1312,6 +1312,7 @@ teams.search_repo_placeholder = Search repository…
 teams.add_team_repository = Add Team Repository
 teams.remove_repo = Remove
 teams.add_nonexistent_repo = "The repository you're trying to add does not exist; please create it first."
+teams.add_duplicate_users = User is already a team member.
 
 [admin]
 dashboard = Dashboard
diff --git a/routers/org/teams.go b/routers/org/teams.go
index 87bfb8596a..da6d81938a 100644
--- a/routers/org/teams.go
+++ b/routers/org/teams.go
@@ -96,7 +96,12 @@ func TeamsAction(ctx *context.Context) {
 			return
 		}
 
-		err = ctx.Org.Team.AddMember(u.ID)
+		if ctx.Org.Team.IsMember(u.ID) {
+			ctx.Flash.Error(ctx.Tr("org.teams.add_duplicate_users"))
+		} else {
+			err = ctx.Org.Team.AddMember(u.ID)
+		}
+
 		page = "team"
 	}