diff --git a/stepmania/src/RageSoundReader_MP3.cpp b/stepmania/src/RageSoundReader_MP3.cpp index 9b1cc0c973..42b929a807 100644 --- a/stepmania/src/RageSoundReader_MP3.cpp +++ b/stepmania/src/RageSoundReader_MP3.cpp @@ -873,14 +873,18 @@ int RageSoundReader_MP3::SetPosition_hard( int iFrame ) if( mad_timer_compare(mad->Timer, desired) == 0 ) return 0; - /* If we're already past the requested position, rewind. */ - if(mad_timer_compare(mad->Timer, desired) > 0) - MADLIB_rewind(); - /* We always come in here with data synthed. Be careful not to synth the * same frame twice. */ bool synthed=true; + /* If we're already past the requested position, rewind. */ + if(mad_timer_compare(mad->Timer, desired) > 0) + { + MADLIB_rewind(); + do_mad_frame_decode(); + synthed = false; + } + /* Decode frames until the current frame contains the desired offset. */ while(1) {