diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index 67a680c319ddc10f027a8f331df1a80ceee9f97a..e433e3c5372e58577ee26064597f9d6a4808ee2a 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -3914,9 +3914,10 @@ static void Command_Tunes_f(void)
 
 static void Command_RestartAudio_f(void)
 {
-	if (dedicated) // No point in doing anything game is a dedicated server.
+	if (dedicated) { // No point in doing anything if game is a dedicated server.
 		return;
-
+}
+	S_StopMusic();
 	I_ShutdownMusic();
 	I_ShutdownSound();
 	I_StartupSound();
@@ -3927,8 +3928,9 @@ static void Command_RestartAudio_f(void)
 	I_SetSfxVolume(cv_soundvolume.value);
 	I_SetDigMusicVolume(cv_digmusicvolume.value);
 	I_SetMIDIMusicVolume(cv_midimusicvolume.value);
-	if (Playing() && (!dedicated)) 
-		P_RestoreMusic(displayplayer);
+	if (Playing() && (!dedicated)) { // Gotta make sure the player is in a level
+		P_RestoreMusic(&players[displayplayer]);
+	}
 }
 
 /** Quits a game and returns to the title screen.