diff --git a/models/org_team.go b/models/org_team.go
index 6a6754cc9..07a90e08f 100644
--- a/models/org_team.go
+++ b/models/org_team.go
@@ -194,13 +194,29 @@ func (t *Team) RemoveRepository(repoID int64) error {
 	return sess.Commit()
 }
 
+func IsUsableTeamName(name string) (err error) {
+	var reservedTeamNames = []string{"new"}
+
+	for i := range reservedTeamNames {
+		if name == reservedTeamNames[i] {
+			return ErrNameReserved{name}
+		}
+	}
+
+	return nil
+}
+
 // NewTeam creates a record of new team.
 // It's caller's responsibility to assign organization ID.
-func NewTeam(t *Team) error {
+func NewTeam(t *Team) (err error) {
 	if len(t.Name) == 0 {
 		return errors.New("empty team name")
 	}
 
+	if err = IsUsableTeamName(t.Name); err != nil {
+		return err
+	}
+
 	has, err := x.Id(t.OrgID).Get(new(User))
 	if err != nil {
 		return err