anchor.diff:  
   //Check if other is not playing, to know when to return to the music
   function TKMMusicLib.IsOtherEnded: Boolean;
  -{$IFDEF USELIBZPLAY} var Status: TStreamStatus; {$ENDIF}
  -begin
  -  {$IFDEF USELIBZPLAY} ZPlayerOther.GetStatus(Status); {$ENDIF}
  -  Result := IsMusicInitialized
  +{$IFDEF USELIBZPLAY}
  +var
  +  status: TStreamStatus;
  +{$ENDIF}
  +begin
  +  {$IFDEF USELIBZPLAY} ZPlayerOther.GetStatus(status); {$ENDIF}
  +  Result := fIsMusicInitialized
               {$IFDEF USELIBZPLAY}
  -            and (not Status.fPlay) //Not playing and not paused due to fade
  +            and (not status.fPlay) //Not playing and not paused due to fade
               {$ENDIF}
               {$IFDEF USEBASS}
               and (BASS_ChannelIsActive(fBassOtherStream) = BASS_ACTIVE_STOPPED)
  
positive.code:     procedure ScanMusicTracks(const aPath: UnicodeString);
      procedure ShuffleSongs; //should not be seen outside of this class
      procedure UnshuffleSongs;
    public
      constructor Create(aVolume: Single);
      destructor Destroy; override;
      procedure UpdateMusicVolume(Value: Single);
      procedure PlayMenuTrack;
      procedure PlayNextTrack;
      procedure PlayPreviousTrack;
  
negative.code: 
    BASS_ChannelPlay(fBassOtherStream, True); //Start playback from the beggining
  
    errorCode := BASS_ErrorGetCode;
    if errorCode <> BASS_OK then exit; //Error
    {$ENDIF}
  
    //Now set the volume to the desired level
  