anchor.diff:  end;
   
   procedure TfrmKeyman7Main.ProcessProfileChange(CommandAndAtom: DWORD);   // I3933   // I3949
  +
  +  procedure ProcessHotkeyChange(hkl: DWORD; guidProfile: TGUID);
  +  var
  +    kbd: TLangSwitchKeyboard;
  +  begin
  +    kbd := FLangSwitchManager.FindKeyboard(hkl, guidProfile);
  +    if Assigned(kbd) then
  +    begin
  +      // Handle toggle hotkey
  +      if (kbd = FLangSwitchManager.ActiveKeyboard) and (kmcom.Options['koKeyboardHotkeysAreToggle'].Value) then
  +          kbd := FLangSwitchManager.Languages[0].Keyboards[0];
  +
  +      ActivateKeyboard(kbd);
  +    end;
  +  end;
  +
   var
     val, FLangID: Integer;
     param2, param3: string;
  
positive.code:     end
      else if wCommand = PC_HOTKEYCHANGE then
      begin
        kbd := FLangSwitchManager.FindKeyboard(val, GUID_NULL);
        if Assigned(kbd) then
        begin
          // Handle toggle hotkey
          if (kbd = FLangSwitchManager.ActiveKeyboard) and (kmcom.Options['koKeyboardHotkeysAreToggle'].Value) then
              kbd := FLangSwitchManager.Languages[0].Keyboards[0];
  
          ActivateKeyboard(kbd);
        end;
        Exit;
      end;
    end
  
negative.code:   FActiveKeyboard: TLangSwitchKeyboard;
    i: Integer;
    wCommand: Word;
  begin
    if GlobalGetAtomName(HiWord(CommandAndAtom), buftext, 128) = 0 then   // I3949
      Exit;   // I4286
  