anchor.diff:    MS: TKMemoryStream;
   begin
     MS := TKMemoryStream.Create;
  -  MS.Write(AnsiString(GAME_VERSION));
  -  MS.Write(fWarriorSoundCount, SizeOf(fWarriorSoundCount));
  -  MS.Write(fWarriorUseBackup, SizeOf(fWarriorUseBackup));
  -  MS.Write(fNotificationSoundCount, SizeOf(fNotificationSoundCount));
  -  MS.SaveToFile(aFile);
  -  MS.Free;
  +  try
  +    MS.Write(AnsiString(GAME_VERSION));
  +    MS.Write(fWarriorSoundCount, SizeOf(fWarriorSoundCount));
  +    MS.Write(fWarriorUseBackup, SizeOf(fWarriorUseBackup));
  +    MS.Write(fNotificationSoundCount, SizeOf(fNotificationSoundCount));
  +    MS.SaveToFile(aFile);
  +  finally
  +    MS.Free;
  +  end;
   end;
   
   
  
positive.code:   AN: TAttackNotification;
    SpeechPath: string;
  begin
    SpeechPath := ExeDir + 'data\sfx\speech.'+fLocale+'\';
  
    //Reset counts from previous locale/unsuccessful load
    FillChar(fWarriorSoundCount, SizeOf(fWarriorSoundCount), #0);
  
negative.code: 
  
  procedure TSoundLib.PlayWarrior(aUnitType:TUnitType; aSound:TWarriorSpeech; aLoc:TKMPointF);
  var
    Wave: string;
    HasLoc: Boolean;
    Count: Byte;
  begin
    if not fIsSoundInitialized then Exit;
    if not (aUnitType in [WARRIOR_MIN..WARRIOR_MAX]) then Exit;
  