diff --git a/reaction/cgame/cg_consolecmds.c b/reaction/cgame/cg_consolecmds.c
index b02d65fa..cc0a3e62 100644
--- a/reaction/cgame/cg_consolecmds.c
+++ b/reaction/cgame/cg_consolecmds.c
@@ -5,6 +5,9 @@
 //-----------------------------------------------------------------------------
 //
 // $Log$
+// Revision 1.43  2002/04/07 12:49:53  slicer
+// Added 'teamname' command for MM, and tweaked the cvar system.
+//
 // Revision 1.42  2002/04/03 09:26:47  jbravo
 // New FF system. Warns and then finally kickbans teamwounders and
 // teamkillers
@@ -975,6 +978,7 @@ void CG_InitConsoleCommands( void ) {
 	trap_AddCommand ("captain");
 	trap_AddCommand ("ready");
 	trap_AddCommand ("sub");
+	trap_AddCommand ("teamname");
 // aasimon: refeere mm
 	trap_AddCommand ("reflogin");
 	trap_AddCommand ("ref");
diff --git a/reaction/cgame/cg_local.h b/reaction/cgame/cg_local.h
index ce1c2471..2fdaa137 100644
--- a/reaction/cgame/cg_local.h
+++ b/reaction/cgame/cg_local.h
@@ -5,6 +5,9 @@
 //-----------------------------------------------------------------------------
 //
 // $Log$
+// Revision 1.64  2002/04/07 12:49:53  slicer
+// Added 'teamname' command for MM, and tweaked the cvar system.
+//
 // Revision 1.63  2002/04/03 03:13:48  blaze
 // NEW BREAKABLE CODE - will break all old breakables(wont appear in maps)
 //
@@ -1590,8 +1593,9 @@ extern	vmCvar_t		cg_RQ3_team_round_going;
 extern	vmCvar_t		cg_RQ3_team1name;
 extern	vmCvar_t		cg_RQ3_team2name;
 //Slicer: matchmode team status cvars
-extern vmCvar_t	RQ3_team1;
-extern vmCvar_t	RQ3_team2;
+extern	vmCvar_t		cg_RQ3_team1ready;
+extern	vmCvar_t		cg_RQ3_team2ready;
+
 
 //
 // cg_main.c
diff --git a/reaction/cgame/cg_main.c b/reaction/cgame/cg_main.c
index d47c1942..506316aa 100644
--- a/reaction/cgame/cg_main.c
+++ b/reaction/cgame/cg_main.c
@@ -5,6 +5,9 @@
 //-----------------------------------------------------------------------------
 //
 // $Log$
+// Revision 1.53  2002/04/07 12:49:53  slicer
+// Added 'teamname' command for MM, and tweaked the cvar system.
+//
 // Revision 1.52  2002/04/03 03:13:49  blaze
 // NEW BREAKABLE CODE - will break all old breakables(wont appear in maps)
 //
@@ -290,8 +293,8 @@ vmCvar_t	cg_RQ3_team1name;
 vmCvar_t	cg_RQ3_team2name;
 
 //Slicer: matchmode team status cvars
-vmCvar_t	MM_team1;
-vmCvar_t	MM_team2;
+vmCvar_t	cg_RQ3_team1ready;
+vmCvar_t	cg_RQ3_team2ready;
 // NiceAss: Taken out of the missionpack
 vmCvar_t	cg_enableBreath;
 // JBravo: ditto
@@ -453,8 +456,8 @@ static cvarTable_t cvarTable[] = { // bk001129
 	{ &cg_RQ3_team2name, "g_RQ3_team2name", "0", 0},
 	{ &cg_gravity, "g_gravity", "0", 0},
 	//Slicer: Team Status Cvars for MM
-	{ &MM_team1, "MM_team1", "0", 0},
-	{ &MM_team2, "MM_team2", "0", 0}
+	{ &cg_RQ3_team1ready, "g_RQ3_team1ready", "0", 0},
+	{ &cg_RQ3_team2ready, "g_RQ3_team2ready", "0", 0}
 //	{ &cg_pmove_fixed, "cg_pmove_fixed", "0", CVAR_USERINFO | CVAR_ARCHIVE }
 };
 
diff --git a/reaction/game/g_client.c b/reaction/game/g_client.c
index 5fb4cc32..605332ed 100644
--- a/reaction/game/g_client.c
+++ b/reaction/game/g_client.c
@@ -5,6 +5,9 @@
 //-----------------------------------------------------------------------------
 //
 // $Log$
+// Revision 1.63  2002/04/07 12:49:10  slicer
+// Added 'teamname' command for MM, and tweaked the cvar system.
+//
 // Revision 1.62  2002/04/07 03:22:48  jbravo
 // Tweaks and crashbug fixes
 //
@@ -1740,10 +1743,10 @@ void ClientDisconnect( int clientNum ) {
 	if(g_RQ3_matchmode.integer) {
 		switch(ent->client->pers.captain ) {
 				case TEAM_RED:
-					trap_Cvar_Set("RQ3_team1", "0");
+					trap_Cvar_Set("g_RQ3_team1ready", "0");
 					break;
 				case TEAM_BLUE:
-					trap_Cvar_Set("RQ3_team2", "0");
+					trap_Cvar_Set("g_RQ3_team2ready", "0");
 					break;
 				default:
 					break;
diff --git a/reaction/game/g_cmds.c b/reaction/game/g_cmds.c
index 2f7fea93..41927e1d 100644
--- a/reaction/game/g_cmds.c
+++ b/reaction/game/g_cmds.c
@@ -5,6 +5,9 @@
 //-----------------------------------------------------------------------------
 //
 // $Log$
+// Revision 1.91  2002/04/07 12:49:10  slicer
+// Added 'teamname' command for MM, and tweaked the cvar system.
+//
 // Revision 1.90  2002/04/07 03:22:48  jbravo
 // Tweaks and crashbug fixes
 //
@@ -892,10 +895,10 @@ void SetTeam( gentity_t *ent, char *s )
 	//	client->sess.savedTeam = team;
 			switch(ent->client->pers.captain) {
 				case TEAM_RED:
-					trap_Cvar_Set("RQ3_team1", "0");
+					trap_Cvar_Set("g_RQ3_team1ready", "0");
 					break;
 				case TEAM_BLUE:
-					trap_Cvar_Set("RQ3_team2", "0");
+					trap_Cvar_Set("g_RQ3_team2ready", "0");
 					break;
 				default:
 					break;
@@ -2945,6 +2948,8 @@ void ClientCommand( int clientNum ) {
 		MM_Ready_f( ent );
 	else if (Q_stricmp (cmd, "sub") == 0)
 		MM_Sub_f( ent );
+	else if (Q_stricmp (cmd, "teamname") == 0)
+		MM_TeamName_f(ent);
 // aasimon: referee for MM
 	else if (Q_stricmp (cmd, "reflogin") == 0)
 		Ref_Auth ( ent );
diff --git a/reaction/game/g_local.h b/reaction/game/g_local.h
index 1aca2528..47438f2c 100644
--- a/reaction/game/g_local.h
+++ b/reaction/game/g_local.h
@@ -5,6 +5,9 @@
 //-----------------------------------------------------------------------------
 //
 // $Log$
+// Revision 1.66  2002/04/07 12:49:10  slicer
+// Added 'teamname' command for MM, and tweaked the cvar system.
+//
 // Revision 1.65  2002/04/03 09:26:47  jbravo
 // New FF system. Warns and then finally kickbans teamwounders and
 // teamkillers
@@ -659,6 +662,7 @@ char *G_NewString( const char *string );
 //
 // g_cmds.c
 //
+char	*ConcatArgs( int start );
 void Cmd_Score_f (gentity_t *ent);
 void StopFollowing( gentity_t *ent );
 void BroadcastTeamChange( gclient_t *client, int oldTeam );
@@ -1081,8 +1085,8 @@ extern	vmCvar_t	g_RQ3_maxteamkills;		// JBravo: Max teamkills
 extern	vmCvar_t	g_RQ3_twbanrounds;		// JBravo: no. of games team wounders are banned
 extern	vmCvar_t	g_RQ3_tkbanrounds;		// JBravo: no. of games team killers are banned
 //Slicer: Team Status Cvars for MM
-extern vmCvar_t	RQ3_team1;
-extern vmCvar_t	RQ3_team2;
+extern vmCvar_t	g_RQ3_team1ready;
+extern vmCvar_t	g_RQ3_team2ready;
 //aasimon: Ref System for MM
 extern vmCvar_t g_RQ3_AllowRef;
 extern vmCvar_t g_RQ3_RefPass;
diff --git a/reaction/game/g_main.c b/reaction/game/g_main.c
index 79ddf372..b4c51f60 100644
--- a/reaction/game/g_main.c
+++ b/reaction/game/g_main.c
@@ -5,6 +5,9 @@
 //-----------------------------------------------------------------------------
 //
 // $Log$
+// Revision 1.43  2002/04/07 12:49:10  slicer
+// Added 'teamname' command for MM, and tweaked the cvar system.
+//
 // Revision 1.42  2002/04/03 09:26:47  jbravo
 // New FF system. Warns and then finally kickbans teamwounders and
 // teamkillers
@@ -195,8 +198,8 @@ vmCvar_t	g_RQ3_maxteamkills;
 vmCvar_t	g_RQ3_twbanrounds;
 vmCvar_t	g_RQ3_tkbanrounds;
 //Slicer: Team Status Cvars for MM
-vmCvar_t	RQ3_team1;
-vmCvar_t	RQ3_team2;
+vmCvar_t	g_RQ3_team1ready;
+vmCvar_t	g_RQ3_team2ready;
 // aasimon: Ref System for MM
 vmCvar_t	g_RQ3_AllowRef;
 vmCvar_t	g_RQ3_RefPass;
@@ -327,8 +330,8 @@ static cvarTable_t		gameCvarTable[] = {
 	{ &g_RQ3_tgren, "g_RQ3_tgren", "0", CVAR_ARCHIVE, 0, qtrue},
 	{ &g_RQ3_limchasecam, "g_RQ3_limchasecam", "0", CVAR_ARCHIVE, 0, qtrue},
 	{ &g_RQ3_sniperup, "g_RQ3_sniperup", "0", CVAR_ARCHIVE, 0, qtrue},
-	{ &g_RQ3_team1name, "g_RQ3_team1name", "Robbers", CVAR_SYSTEMINFO | CVAR_SERVERINFO | CVAR_USERINFO | CVAR_LATCH, 0, qtrue, qtrue },
-	{ &g_RQ3_team2name, "g_RQ3_team2name", "Swat", CVAR_SYSTEMINFO | CVAR_SERVERINFO | CVAR_USERINFO | CVAR_LATCH, 0, qtrue, qtrue },
+	{ &g_RQ3_team1name, "g_RQ3_team1name", "Robbers", CVAR_SYSTEMINFO | CVAR_SERVERINFO , 0, qfalse },
+	{ &g_RQ3_team2name, "g_RQ3_team2name", "Swat", CVAR_SYSTEMINFO | CVAR_SERVERINFO , 0, qfalse },
 	{ &g_RQ3_teamCount1, "g_RQ3_teamCount1", "0", CVAR_SYSTEMINFO, 0, qfalse },
 	{ &g_RQ3_teamCount2, "g_RQ3_teamCount2", "0", CVAR_SYSTEMINFO, 0, qfalse },
 	{ &g_RQ3_numSpectators, "g_RQ3_numSpectators", "0", CVAR_SYSTEMINFO, 0, qfalse },
@@ -337,8 +340,8 @@ static cvarTable_t		gameCvarTable[] = {
 	{ &g_RQ3_twbanrounds, "g_RQ3_twbanrounds", "2", CVAR_ARCHIVE, 0, qtrue},
 	{ &g_RQ3_tkbanrounds, "g_RQ3_tkbanrounds", "2", CVAR_ARCHIVE, 0, qtrue},
 	//Slicer: Team Status Cvars for MM
-	{ &RQ3_team1, "RQ3_team1", "0", 0, 0, qfalse},
-	{ &RQ3_team2, "RQ3_team2", "0", 0, 0, qfalse},
+	{ &g_RQ3_team1ready, "g_RQ3_team1ready", "0", CVAR_SYSTEMINFO, 0, qfalse},
+	{ &g_RQ3_team2ready, "g_RQ3_team2ready", "0", CVAR_SYSTEMINFO, 0, qfalse},
 	// aasimon: Ref system for MM,added infor for referee id (clientnumber)
 	{ &g_RQ3_AllowRef, "g_RQ3_AllowRef", "0", CVAR_SERVERINFO, 0, qtrue},
 	{ &g_RQ3_RefPass, "g_RQ3_RefPassword", "", CVAR_USERINFO, 0, qfalse},
@@ -695,8 +698,8 @@ void G_InitGame( int levelTime, int randomSeed, int restart ) {
 	if(g_RQ3_matchmode.integer && g_gametype.integer == GT_TEAMPLAY) {
 		level.matchTime = 0;
 		level.inGame = qfalse;
-		trap_Cvar_Set("RQ3_team1", "0");
-		trap_Cvar_Set("RQ3_team2", "0");
+		trap_Cvar_Set("g_RQ3_team1ready", "0");
+		trap_Cvar_Set("g_RQ3_team2ready", "0");
 	}
 
 	if ( trap_Cvar_VariableIntegerValue( "bot_enable" ) ) {
diff --git a/reaction/game/g_matchmode.c b/reaction/game/g_matchmode.c
index a98ac1ce..996325fd 100644
--- a/reaction/game/g_matchmode.c
+++ b/reaction/game/g_matchmode.c
@@ -64,13 +64,13 @@ void MM_Captain_f( gentity_t *ent ) {
 		return;
 	}
 	if(ent->client->pers.captain  == TEAM_RED) {
-			trap_Cvar_Set("RQ3_team1", "0");
+			trap_Cvar_Set("g_RQ3_team1ready", "0");
 			trap_SendServerCommand( -1, va("print \"%s is no longer %s's Captain.\n\"",
 			ent->client->pers.netname,"Red Team"));// Teams will have names in the future..
 			ent->client->pers.captain = TEAM_FREE;
 	}
 	else if(ent->client->pers.captain == TEAM_BLUE) {
-			trap_Cvar_Set("RQ3_team2", "0");
+			trap_Cvar_Set("g_RQ3_team2ready", "0");
 			trap_SendServerCommand( -1, va("print \"%s is no longer %s's Captain.\n\"",
 				ent->client->pers.netname,"Blue Team"));// Teams will have names in the future..
 			ent->client->pers.captain = TEAM_FREE;
@@ -94,22 +94,22 @@ void MM_Ready_f(gentity_t *ent) {
 	if(ent->client->pers.captain != TEAM_FREE) {
 		if(ent->client->sess.savedTeam == TEAM_RED) {
 			trap_SendServerCommand( -1, va("cp \"%s is%s Ready.\n\"",
-			"Red Team",RQ3_team1.integer == 0 ? "": "no longer"));
+			"Red Team",g_RQ3_team1ready.integer == 0 ? "": "no longer"));
 			
-			if(RQ3_team1.integer)
-				trap_Cvar_Set("RQ3_Team1", "0");
+			if(g_RQ3_team1ready.integer)
+				trap_Cvar_Set("g_RQ3_team1ready", "0");
 			else
-				trap_Cvar_Set("RQ3_Team1", "1");
+				trap_Cvar_Set("g_RQ3_team1ready", "1");
 
 		}
 		else {
 			trap_SendServerCommand( -1, va("cp \"%s is%s Ready.\n\"",
-			"Blue Team",RQ3_team2.integer == 0 ? "": " no longer"));
+			"Blue Team",g_RQ3_team2ready.integer == 0 ? "": " no longer"));
 
-			if(RQ3_team2.integer)
-					trap_Cvar_Set("RQ3_Team2", "0");
+			if(g_RQ3_team2ready.integer)
+					trap_Cvar_Set("g_RQ3_team2ready", "0");
 			else
-				trap_Cvar_Set("RQ3_Team2", "1");
+				trap_Cvar_Set("g_RQ3_team2ready", "1");
 			
 		}
 	}
@@ -118,6 +118,66 @@ void MM_Ready_f(gentity_t *ent) {
 
 }
 
+void MM_TeamName_f(gentity_t *ent) {
+		int args;
+		team_t team;
+		char *buff;
+		
+		team = ent->client->sess.savedTeam; 
+		if(!g_RQ3_matchmode.integer) 
+			return;
+		if(team == TEAM_SPECTATOR) {
+			return;
+		}
+
+		args = trap_Argc();
+
+		if(args < 2) {
+			trap_SendServerCommand(ent-g_entities, va("print \"Your Team Name: %s\n\"",
+				ent->client->sess.savedTeam == TEAM_RED ? g_RQ3_team1name.string : g_RQ3_team2name.string ));
+			return;
+		}
+		else {
+			if(ent->client->pers.captain == TEAM_FREE) {
+				trap_SendServerCommand(ent-g_entities, "print \"You need to be a captain for that\n\"");
+				return;
+			}
+
+			if(level.team_game_going || level.team_round_going) {
+					trap_SendServerCommand(ent-g_entities, "print \"You cannot change your team's name while playing or ready.\n\"");				
+			}
+
+			buff = ConcatArgs( 1 );
+
+			if( strlen(buff) > TEAM_NAME_SIZE )
+				buff[TEAM_NAME_SIZE] = 0;
+
+			if(team == TEAM_RED) {
+				if(g_RQ3_team1ready.integer) {
+					trap_SendServerCommand(ent-g_entities, "print \"You need to un-ready your team for that..\n\"");		
+					return;
+				}
+				trap_Cvar_Set("g_RQ3_team1name",buff);
+				trap_SendServerCommand(-1,va("print \"New Team 1 Name: %s\n\"",buff));
+				
+				
+
+			}
+			else {
+				if(g_RQ3_team2ready.integer) {
+					trap_SendServerCommand(ent-g_entities, "print \"You need to un-ready your team for that..\n\"");		
+					return;
+				}
+				trap_Cvar_Set("g_RQ3_team2name",buff);
+				trap_SendServerCommand(-1,va("print \"New Team 2 Name: %s\n\"",buff));
+			
+			}
+		
+
+		}	
+}
+
+
 //
 //	aasimon: Referee Functions Definition, with some aid functions first
 //
diff --git a/reaction/game/g_matchmode.h b/reaction/game/g_matchmode.h
index c9a39ca1..08a80138 100644
--- a/reaction/game/g_matchmode.h
+++ b/reaction/game/g_matchmode.h
@@ -1,8 +1,10 @@
+
 void		MM_RunFrame( void );
 void		MM_Captain_f(gentity_t *ent );
 void		MM_Sub_f( gentity_t *ent);
 void		MM_Ready_f(gentity_t *ent);
 void		MM_ClearScores( void );
+void		MM_TeamName_f(gentity_t *ent);
 
 // aasimon: Declarations for Ref system 
 qboolean	Ref_Exists( void );
diff --git a/reaction/game/g_teamplay.c b/reaction/game/g_teamplay.c
index 310b0a4c..62ef0df4 100644
--- a/reaction/game/g_teamplay.c
+++ b/reaction/game/g_teamplay.c
@@ -5,6 +5,9 @@
 //-----------------------------------------------------------------------------
 //
 // $Log$
+// Revision 1.61  2002/04/07 12:49:10  slicer
+// Added 'teamname' command for MM, and tweaked the cvar system.
+//
 // Revision 1.60  2002/04/07 03:22:48  jbravo
 // Tweaks and crashbug fixes
 //
@@ -253,7 +256,7 @@ void CheckTeamRules()
 		} else {
 			//Slicer: Adding Matchmode
 			if(g_RQ3_matchmode.integer) {
-				if(RQ3_team1.integer && RQ3_team2.integer)
+				if(g_RQ3_team1ready.integer && g_RQ3_team2ready.integer)
 					trap_SendServerCommand( -1, "cp \"Not enough players to play!\n\"");
 				else
 					trap_SendServerCommand( -1, "cp \"Both Teams Must Be Ready!\n\"");
@@ -289,8 +292,8 @@ void CheckTeamRules()
 					level.inGame = level.team_round_going = level.team_round_countdown = 
 					level.team_game_going = level.matchTime = 0;
 					trap_SendServerCommand( -1, "roundend");
-					trap_Cvar_Set("RQ3_Team1", "0");
-					trap_Cvar_Set("RQ3_Team2", "0");
+					trap_Cvar_Set("g_RQ3_team1ready", "0");
+					trap_Cvar_Set("g_RQ3_team2ready", "0");
 					MakeAllLivePlayersObservers ();
 					trap_SendServerCommand( -1, "cp \"Match is OVER !!!.\n\"");
 					return;
@@ -380,7 +383,7 @@ qboolean BothTeamsHavePlayers()
 	int onteam1 = 0, onteam2 = 0;
 
 	//Slicer: Matchmode
-	if(g_RQ3_matchmode.integer && (!RQ3_team1.integer || !RQ3_team2.integer))
+	if(g_RQ3_matchmode.integer && (!g_RQ3_team1ready.integer || !g_RQ3_team2ready.integer))
 		return 0;
 	
 
@@ -534,8 +537,8 @@ int WonGame(int winner)
 			level.inGame = level.team_round_going = level.team_round_countdown = 
 			level.team_game_going = level.matchTime = 0;
 			trap_SendServerCommand( -1, "roundend");
-			trap_Cvar_Set("RQ3_Team1", "0");
-			trap_Cvar_Set("RQ3_Team2", "0");
+			trap_Cvar_Set("g_RQ3_team1ready", "0");
+			trap_Cvar_Set("g_RQ3_team2ready", "0");
 			MakeAllLivePlayersObservers ();
 			trap_SendServerCommand( -1, "cp \"Match is OVER !!!.\n\"");
 			return 1;
@@ -560,8 +563,8 @@ int WonGame(int winner)
 				level.inGame = level.team_round_going = level.team_round_countdown = 
 				level.team_game_going = level.matchTime = 0;
 				trap_SendServerCommand( -1, "roundend");
-				trap_Cvar_Set("RQ3_Team1", "0");
-				trap_Cvar_Set("RQ3_Team2", "0");
+				trap_Cvar_Set("g_RQ3_team1ready", "0");
+				trap_Cvar_Set("g_RQ3_team2ready", "0");
 				MakeAllLivePlayersObservers ();
 				trap_SendServerCommand( -1, "cp \"Match is OVER !!!.\n\"");
 				return 1;
diff --git a/reaction/game/g_teamplay.h b/reaction/game/g_teamplay.h
index b60d8b2b..c9e0552f 100644
--- a/reaction/game/g_teamplay.h
+++ b/reaction/game/g_teamplay.h
@@ -5,6 +5,9 @@
 //-----------------------------------------------------------------------------
 //
 // $Log$
+// Revision 1.11  2002/04/07 12:49:10  slicer
+// Added 'teamname' command for MM, and tweaked the cvar system.
+//
 // Revision 1.10  2002/04/03 09:26:47  jbravo
 // New FF system. Warns and then finally kickbans teamwounders and
 // teamkillers
@@ -44,6 +47,8 @@
 #define WINNER_TEAM1	1
 #define WINNER_TEAM2	2
 #define WINNER_TIE	3
+//Slicer TeamName Size.
+#define TEAM_NAME_SIZE 30
 
 void CheckTeamRules();
 void StartLCA();