anchor.diff:      end;
   end;
   
  -function AppKeymapHasDuplicateForKey(const AHotkey: string): boolean;
  +function AppKeymapHasDuplicateForKey(AHotkey, AKeyComboSeparator: string): boolean;
   var
     item: TATKeymapItem;
     i: integer;
   begin
     Result:= false;
     if AHotkey='' then exit;
  +
  +  //KeyArrayToString has separator ' * '
  +  AHotkey:= StringReplace(AHotkey, AKeyComboSeparator, ' * ', [rfReplaceAll]);
  +
     for i:= 0 to AppKeymap.Count-1 do
     begin
       item:= AppKeymap.Items[i];
  
positive.code:     sl.Clear;
      s_items:= AHotkey;
      repeat
        s_item:= SGetItem(s_items, '|');
        if s_item='' then Break;
        sl.Add(s_item);
      until false;
  
negative.code: 
  function MsgBox(const Str: string; Flags: Longint): integer;
  function AppKeymapHasDuplicates: boolean;
  function AppKeymapHasDuplicateForKey(AHotkey, AKeyComboSeparator: string): boolean;
  
  procedure DoOps_SaveKeyItem(K: TATKeymapItem; const path, ALexerName: string);
  procedure DoOps_SaveKey_ForPluginModuleAndMethod(AOverwriteKey: boolean;
  