diff --git a/src/s_sound.c b/src/s_sound.c
index af1425abf44ce787855101d7f5605949077d12c6..3b0c87463af25c27e48e85697409ba9fc7ab6935 100644
--- a/src/s_sound.c
+++ b/src/s_sound.c
@@ -1429,7 +1429,7 @@ UINT32 S_GetMusicLength(void)
 
 boolean S_SetMusicLoopPoint(UINT32 looppoint)
 {
-	return I_SetMusicPosition(looppoint);
+	return I_SetMusicLoopPoint(looppoint);
 }
 
 UINT32 S_GetMusicLoopPoint(void)
diff --git a/src/sdl/mixer_sound.c b/src/sdl/mixer_sound.c
index 3cdc061dc9096aa8acd6db707aa31f3f7ba26e9d..3da012c8544beaa7dd85b3db0c958bb17e1c0fc5 100644
--- a/src/sdl/mixer_sound.c
+++ b/src/sdl/mixer_sound.c
@@ -942,7 +942,7 @@ UINT32 I_GetMusicLength(void)
 
 boolean I_SetMusicLoopPoint(UINT32 looppoint)
 {
-	if (midimode || gme || !music || I_MusicType() == MU_MOD)
+	if (midimode || gme || !music || I_MusicType() == MU_MOD || !is_looping)
 		return false;
 	else
 	{