diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c index 91ebd2650..bf4642242 100644 --- a/src/audio/SDL_wave.c +++ b/src/audio/SDL_wave.c @@ -434,7 +434,13 @@ SDL_AudioSpec * SDL_LoadWAV_RW (SDL_RWops *src, int freesrc, /* Check the magic header */ RIFFchunk = SDL_ReadLE32(src); wavelen = SDL_ReadLE32(src); - WAVEmagic = SDL_ReadLE32(src); + if ( wavelen == WAVE ) { /* The RIFFchunk has already been read */ + WAVEmagic = wavelen; + wavelen = RIFFchunk; + RIFFchunk = RIFF; + } else { + WAVEmagic = SDL_ReadLE32(src); + } if ( (RIFFchunk != RIFF) || (WAVEmagic != WAVE) ) { SDL_SetError("Unrecognized file type (not WAVE)"); was_error = 1;