anchor.diff:      HKMCmpDll := LoadLibrary(PChar(s+kmcmpdll_lib));
       if HKMCmpDll = 0 then
       begin
  -      Callback(0, $8000, PAnsiChar(AnsiString('Could not load the compiler library '+s+kmcmpdll_lib+'.  '+   // I4706
  -        'Check that '+kmcmpdll_lib+' is in the program directory '+
  -        'and that it is not corrupt.'#13#10+'Windows error message: '+SysErrorMessage(GetLastError))));
  -      Result := -1;
  -      Exit;
  +      if Assigned(Callback) then
  +        Callback(0, $8000, PAnsiChar(AnsiString('Could not load the compiler library '+s+kmcmpdll_lib+'.  '+   // I4706
  +          'Check that '+kmcmpdll_lib+' is in the program directory '+
  +          'and that it is not corrupt.'#13#10+'Windows error message: '+SysErrorMessage(GetLastError))));
  +      Exit(False);
       end;
     end;
  +  Result := True;
  +end;
  +
  +function CompileKeyboardFile(kmnFile, kmxFile: PChar; FSaveDebug, CompilerWarningsAsErrors, WarnDeprecatedCode: BOOL; CallBack: TCompilerCallback): Integer;   // I4865   // I4866
  +var
  +  ckf: TCompileKeyboardFile;
  +begin
  +  //Result := 0;
  +
  +  if not LoadCompiler(Callback) then Exit(-1);
   
     @ckf := GetProcAddress(HKMCmpDll, 'CompileKeyboardFile');
     if not Assigned(@ckf) then
  
positive.code: end;
  
  initialization
  
  finalization
    if HKMCmpDll > 0 then
  
negative.code: function CompileKeyboardFileToBuffer(kmnFile: PChar; buf: PFILE_KEYBOARD; CompilerWarningsAsErrors, WarnDeprecatedCode: BOOL; CallBack: TCompilerCallback; Target: Integer): Integer;   // I4865   // I4866
  var
    ckf: TCompileKeyboardFileToBuffer;
  begin
    //Result := 0;
  
    if not LoadCompiler(Callback) then Exit(-1);
  
    @ckf := GetProcAddress(HKMCmpDll, 'CompileKeyboardFileToBuffer');
    if not Assigned(@ckf) then
  