diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index 13cf2fed9c0b3f31f9d228c0c3b42acf77c0f373..e4669c0933b62d4c497758ee952f429f93b18590 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -3763,6 +3763,8 @@ static void Command_Displayplayer_f(void)
 	CONS_Printf(M_GetText("Displayplayer is %d\n"), displayplayer);
 }
 
+#include "dehacked.h"
+#include "fastcmp.h"
 static void Command_Tunes_f(void)
 {
 	const char *tunearg;
@@ -3788,9 +3790,13 @@ static void Command_Tunes_f(void)
 		tune = mapheaderinfo[gamemap-1]->musicslot;
 		track = mapheaderinfo[gamemap-1]->musicslottrack;
 	}
-	else if (toupper(tunearg[0]) >= 'A' && toupper(tunearg[0]) <= 'Z')
+	else if ((toupper(tunearg[0]) >= 'A' && toupper(tunearg[0]) <= 'Z') && (strlen(tunearg) < 3))
 		tune = (UINT16)M_MapNumber(tunearg[0], tunearg[1]);
-
+    else if (fastncmp("mus_",tunearg,4)) //yellowtd: why not just give both tune options?
+        tune = get_mus(tunearg+4);
+    else if (tunearg) 
+        tune = get_mus(tunearg);  
+	
 	if (tune >= NUMMUSIC)
 	{
 		CONS_Alert(CONS_NOTICE, M_GetText("Valid slots are 1 to %d, or 0 to stop music\n"), NUMMUSIC - 1);
diff --git a/src/dehacked.c b/src/dehacked.c
index b92850cce38c58840b4092440d536314c6da6752..af0e4081998b1a6fdd3f7ffa749399b70c05485b 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -65,7 +65,7 @@ static mobjtype_t get_mobjtype(const char *word);
 static statenum_t get_state(const char *word);
 static spritenum_t get_sprite(const char *word);
 static sfxenum_t get_sfx(const char *word);
-static UINT16 get_mus(const char *word);
+//static UINT16 get_mus(const char *word);
 static hudnum_t get_huditem(const char *word);
 #ifndef HAVE_BLUA
 static powertype_t get_power(const char *word);
@@ -7987,7 +7987,9 @@ static sfxenum_t get_sfx(const char *word)
 	return sfx_None;
 }
 
-static UINT16 get_mus(const char *word)
+//yellowtd: make get_mus an extern
+//static UINT16 get_mus(const char *word)
+extern UINT16 get_mus(const char *word)
 { // Returns the value of SFX_ enumerations
 	UINT16 i;
 	if (*word >= '0' && *word <= '9')
diff --git a/src/dehacked.h b/src/dehacked.h
index d87d22679e3a369d2d47ba537c69ac35f81291c6..1c6bd6553547f12366c0b96dd865df408e17b0f9 100644
--- a/src/dehacked.h
+++ b/src/dehacked.h
@@ -41,6 +41,9 @@ void DEH_Check(void);
 
 fixed_t get_number(const char *word);
 
+//yellowtd: make get_mus an extern
+extern UINT16 get_mus(const char *word);
+
 #ifdef HAVE_BLUA
 boolean LUA_SetLuaAction(void *state, const char *actiontocompare);
 const char *LUA_GetActionName(void *action);
diff --git a/src/sdl/i_cdmus.c b/src/sdl/i_cdmus.c
index fc35eb9cf0bec5ac8532c6ae6ec4f685592b51ab..73857af58e33379b51bbf2768c9445e1f0033a73 100644
--- a/src/sdl/i_cdmus.c
+++ b/src/sdl/i_cdmus.c
@@ -1,3 +1,4 @@
+#ifdef HAVE_SDL
 #include "../command.h"
 #include "../s_sound.h"
 #include "../i_sound.h"
@@ -36,3 +37,4 @@ boolean I_SetVolumeCD(int volume)
 	return false;
 }
 
+#endif