diff --git a/src/d_clisrv.c b/src/d_clisrv.c
index 7aafdf539f26e8940adbf4865d36807efc64c6ec..31a19001adcf802bc7a7bac618b0f334244d046d 100755
--- a/src/d_clisrv.c
+++ b/src/d_clisrv.c
@@ -2925,7 +2925,6 @@ static CV_PossibleValue_t netticbuffer_cons_t[] = {{0, "MIN"}, {3, "MAX"}, {0, N
 consvar_t cv_netticbuffer = CVAR_INIT ("netticbuffer", "1", CV_SAVE, netticbuffer_cons_t, NULL);
 
 consvar_t cv_allownewplayer = CVAR_INIT ("allowjoin", "On", CV_SAVE|CV_NETVAR, CV_OnOff, NULL);
-consvar_t cv_joinnextround = CVAR_INIT ("joinnextround", "Off", CV_SAVE|CV_NETVAR, CV_OnOff, NULL); /// \todo not done
 static CV_PossibleValue_t maxplayers_cons_t[] = {{2, "MIN"}, {32, "MAX"}, {0, NULL}};
 consvar_t cv_maxplayers = CVAR_INIT ("maxplayers", "8", CV_SAVE|CV_NETVAR, maxplayers_cons_t, NULL);
 static CV_PossibleValue_t joindelay_cons_t[] = {{1, "MIN"}, {3600, "MAX"}, {0, "Off"}, {0, NULL}};
@@ -3532,17 +3531,13 @@ static void HandleConnect(SINT8 node)
 		// client authorised to join
 		if (!netnodes[node].ingame)
 		{
-			gamestate_t backupstate = gamestate;
 #ifndef NONET
 			newnode = true;
 #endif
 			SV_AddNode(node);
 
-			if (cv_joinnextround.value && gameaction == ga_nothing)
-				G_SetGamestate(GS_WAITINGPLAYERS);
 			if (!SV_SendServerConfig(node))
 			{
-				G_SetGamestate(backupstate);
 				/// \note Shouldn't SV_SendRefuse be called before ResetNode?
 				ResetNode(node);
 				SV_SendRefuse(node, M_GetText("Server couldn't send info, please try again"));
@@ -3551,7 +3546,6 @@ static void HandleConnect(SINT8 node)
 			}
 			//if (gamestate != GS_LEVEL) // GS_INTERMISSION, etc?
 			//	SV_SendPlayerConfigs(node); // send bare minimum player info
-			G_SetGamestate(backupstate);
 			DEBFILE("new node joined\n");
 		}
 #ifndef NONET
diff --git a/src/d_clisrv.h b/src/d_clisrv.h
index b3ee95c0ccde92a8fd62437331686cd69ff385ce..99d8599240e1303490494c211bf40a47257205bc 100644
--- a/src/d_clisrv.h
+++ b/src/d_clisrv.h
@@ -394,7 +394,7 @@ extern UINT32 realpingtable[MAXPLAYERS];
 extern UINT32 playerpingtable[MAXPLAYERS];
 extern tic_t servermaxping;
 
-extern consvar_t cv_netticbuffer, cv_allownewplayer, cv_joinnextround, cv_maxplayers, cv_joindelay, cv_rejointimeout;
+extern consvar_t cv_netticbuffer, cv_allownewplayer, cv_maxplayers, cv_joindelay, cv_rejointimeout;
 extern consvar_t cv_resynchattempts, cv_blamecfail;
 extern consvar_t cv_maxsend, cv_noticedownload, cv_downloadspeed;
 
diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index 243501ba4c200ef8b5c850e7dd380e3a97d09556..64f478ff7ae695104ef8d57ab8036b9389172e9f 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -630,7 +630,6 @@ void D_RegisterServerCommands(void)
 	CV_RegisterVar(&cv_downloadspeed);
 #ifndef NONET
 	CV_RegisterVar(&cv_allownewplayer);
-	CV_RegisterVar(&cv_joinnextround);
 	CV_RegisterVar(&cv_showjoinaddress);
 	CV_RegisterVar(&cv_blamecfail);
 #endif