diff --git a/src/s_sound.c b/src/s_sound.c
index 9a5e7247b..3708673e3 100644
--- a/src/s_sound.c
+++ b/src/s_sound.c
@@ -1699,6 +1699,8 @@ static void S_ChangeMusicToQueue(void)
 
 void S_ChangeMusicEx(const char *mmusic, UINT16 mflags, boolean looping, UINT32 position, UINT32 prefadems, UINT32 fadeinms)
 {
+	char newmusic[7];
+
 #if defined (DC) || defined (_WIN32_WCE) || defined (PSP) || defined(GP2X)
 	S_ClearSfx();
 #endif
@@ -1706,7 +1708,6 @@ void S_ChangeMusicEx(const char *mmusic, UINT16 mflags, boolean looping, UINT32
 	if (S_MusicDisabled())
 		return;
 
-	char newmusic[7];
 	strncpy(newmusic, mmusic, 7);
 #if defined(HAVE_BLUA) && defined(HAVE_LUA_MUSICPLUS)
 	if(LUAh_MusicChange(music_name, newmusic, &mflags, &looping, &position, &prefadems, &fadeinms))
diff --git a/src/sdl/mixer_sound.c b/src/sdl/mixer_sound.c
index 644a667b3..fc6ccf50c 100644
--- a/src/sdl/mixer_sound.c
+++ b/src/sdl/mixer_sound.c
@@ -506,7 +506,7 @@ static UINT32 get_adjusted_position(UINT32 position)
 		return position;
 }
 
-static void do_fading_callback()
+static void do_fading_callback(void)
 {
 	if (fading_callback)
 		(*fading_callback)();
@@ -565,11 +565,11 @@ static UINT32 music_fade(UINT32 interval, void *param)
 	else
 	{
 		UINT8 delta = abs(fading_target - fading_source);
-		double factor = (double)(fading_duration - fading_timer) / (double)fading_duration;
+		fixed_t factor = FixedDiv(fading_duration - fading_timer, fading_duration);
 		if (fading_target < fading_source)
-			internal_volume = max(min(internal_volume, fading_source - (UINT8)round(delta * factor)), fading_target);
+			internal_volume = max(min(internal_volume, fading_source - FixedMul(delta, factor)), fading_target);
 		else if (fading_target > fading_source)
-			internal_volume = min(max(internal_volume, fading_source + (UINT8)round(delta * factor)), fading_target);
+			internal_volume = min(max(internal_volume, fading_source + FixedMul(delta, factor)), fading_target);
 		Mix_VolumeMusic(get_real_volume(music_volume));
 		return interval;
 	}
@@ -1170,7 +1170,7 @@ void I_StopSong(void)
 	var_cleanup();
 }
 
-void I_PauseSong()
+void I_PauseSong(void)
 {
 	if(I_SongType() == MU_MID) // really, SDL Mixer? why can't you pause MIDI???
 		return;
@@ -1182,7 +1182,7 @@ void I_PauseSong()
 	songpaused = true;
 }
 
-void I_ResumeSong()
+void I_ResumeSong(void)
 {
 	if (I_SongType() == MU_MID)
 		return;