anchor.diff:    //Fill stream with data to be sent
     case aType of
     kttMap: begin
  -          for I := Low(VALID_MAP_EXTENSIONS) to High(VALID_MAP_EXTENSIONS) do
  -          begin
  -            FileName := GetFullSourceFileName(aType, aName, aMapFolder, '', VALID_MAP_EXTENSIONS[I]);
  -            if FileExists(FileName) then
  -              AddFileToStream(FileName, '', VALID_MAP_EXTENSIONS[I]);
  -            //Add all included script files
  -            if (VALID_MAP_EXTENSIONS[I] = 'script') and FileExists(FileName) then
  +            for I := Low(VALID_MAP_EXTENSIONS) to High(VALID_MAP_EXTENSIONS) do
               begin
  -              ScriptPreProcessor := TKMScriptingPreProcessor.Create;
  -              try
  -                if not ScriptPreProcessor.PreProcessFile(FileName) then
  -                  //throw an Exception if PreProcessor was not successful to cancel FileSender creation
  -                  raise Exception.Create('Can''n start send file because of error while script pre-processing');
  -                ScriptFiles := ScriptPreProcessor.ScriptFilesInfo;
  -                for J := 0 to ScriptFiles.IncludedCount - 1 do
  -                begin
  -                  if FileExists(ScriptFiles[J].FullFilePath) then
  -                    AddFileToStream(ScriptFiles[J].FullFilePath, '', VALID_MAP_EXTENSIONS[I]);
  +              FileName := GetFullSourceFileName(aType, aName, aMapFolder, '', VALID_MAP_EXTENSIONS[I]);
  +              if FileExists(FileName) then
  +                AddFileToStream(FileName, '', VALID_MAP_EXTENSIONS[I]);
  +              //Add all included script files
  +              if (VALID_MAP_EXTENSIONS[I] = 'script') and FileExists(FileName) then
  +              begin
  +                ScriptPreProcessor := TKMScriptingPreProcessor.Create;
  +                try
  +                  if not ScriptPreProcessor.PreProcessFile(FileName) then
  +                    //throw an Exception if PreProcessor was not successful to cancel FileSender creation
  +                    raise Exception.Create('Can''n start send file because of error while script pre-processing');
  +                  ScriptFiles := ScriptPreProcessor.ScriptFilesInfo;
  +                  for J := 0 to ScriptFiles.IncludedCount - 1 do
  +                  begin
  +                    if FileExists(ScriptFiles[J].FullFilePath) then
  +                      AddFileToStream(ScriptFiles[J].FullFilePath, '', VALID_MAP_EXTENSIONS[I]);
  +                  end;
  +                finally
  +                  ScriptPreProcessor.Free;
                   end;
  -              finally
  -                ScriptPreProcessor.Free;
  +              end;
  +            end;
  +            for I := Low(VALID_MAP_EXTENSIONS_POSTFIX) to High(VALID_MAP_EXTENSIONS_POSTFIX) do
  +            begin
  +              FileName := GetFullSourceFileName(aType, aName, aMapFolder, '.*', VALID_MAP_EXTENSIONS_POSTFIX[I]);
  +              if FindFirst(FileName, faAnyFile, F) = 0 then
  +              begin
  +                repeat
  +                  if (F.Attr and faDirectory = 0) then
  +                    AddFileToStream(ExtractFilePath(FileName) + F.Name, ExtractFileExt(ChangeFileExt(F.Name,'')), VALID_MAP_EXTENSIONS_POSTFIX[I]);
  +                until FindNext(F) <> 0;
  +                FindClose(F);
                 end;
               end;
             end;
  -          for I := Low(VALID_MAP_EXTENSIONS_POSTFIX) to High(VALID_MAP_EXTENSIONS_POSTFIX) do
  -          begin
  -            FileName := GetFullSourceFileName(aType, aName, aMapFolder, '.*', VALID_MAP_EXTENSIONS_POSTFIX[I]);
  -            if FindFirst(FileName, faAnyFile, F) = 0 then
  -            begin
  -              repeat
  -                if (F.Attr and faDirectory = 0) then
  -                  AddFileToStream(ExtractFilePath(FileName) + F.Name, ExtractFileExt(ChangeFileExt(F.Name,'')), VALID_MAP_EXTENSIONS_POSTFIX[I]);
  -              until FindNext(F) <> 0;
  -              FindClose(F);
  -            end;
  -          end;
  -end;
       kttSave: for I := Low(VALID_SAVE_EXTENSIONS) to High(VALID_SAVE_EXTENSIONS) do
                begin
  -               FileName := GetFullSourceFileName(aType, aName, aMapFolder, '', VALID_SAVE_EXTENSIONS[I]);
  +               FileName := TKMSavesCollection.FullPath(aName, VALID_SAVE_EXTENSIONS[I], True);
                  if FileExists(FileName) then
                    AddFileToStream(FileName, '', VALID_SAVE_EXTENSIONS[I]);
                end;
  
positive.code: 
  implementation
  uses
    KromUtils, KM_Maps, KM_Scripting, KM_Log;
  
  const
    //TODO: Add LIBX and WAV support for maps
  
negative.code: 
  procedure TKMFileReceiver.ClearExistingFiles;
  var
    FileName, SaveFolder: UnicodeString;
    F: TSearchRec;
    I: Integer;
  begin
  