anchor.diff:  procedure TKeyboardProjectTemplate.WriteDocumentation;
   begin
     // Write readme.htm and welcome.htm
  -  Transform('source\welcome.htm');
  -  Transform('source\readme.htm');
  +  Transform(SFolder_Source + '\' + SFile_WelcomeHTM);
  +  Transform(SFolder_Source + '\' + SFile_ReadmeHTM);
   end;
   
   procedure TKeyboardProjectTemplate.WriteKeyboardInfo;
   begin
     // Write keyboardid.keyboard_info
  -  Transform('keyboard.keyboard_info', FKeyboardID+'.keyboard_info');
  +  Transform(
  +    Format(SFileTemplate_KeyboardInfo, ['keyboard']),
  +    Format(SFileTemplate_KeyboardInfo, [FKeyboardID])
  +  );
   end;
   
   procedure TKeyboardProjectTemplate.WriteKMN;
  
positive.code:     if HasKMX then
      begin
        f := TPackageContentFile.Create(kps);
        f.FileName := FBasePath + FKeyboardID + '\build\' + FKeyboardID + Ext_KeymanFile;
        kps.Files.Add(f);
      end;
  
  
negative.code:     if HasKVKS then
      begin
        f := TPackageContentFile.Create(kps);
        f.FileName := FBasePath + FKeyboardID + '\' + SFolder_Build + '\' + FKeyboardID + Ext_VisualKeyboard;
        kps.Files.Add(f);
      end;
  
      // Add welcome
      f := TPackageContentFile.Create(kps);
      f.FileName := FBasePath + FKeyboardID + '\' + SFolder_Source + '\' + SFile_WelcomeHTM;
      kps.Files.Add(f);
  
      // Add readme
      f := TPackageContentFile.Create(kps);
      f.FileName := FBasePath + FKeyboardID + '\' + SFolder_Source + '\' + SFile_ReadmeHTM;
      kps.Files.Add(f);
      kps.Options.ReadmeFile := f;
  
  