anchor.diff:      i := 0;
     xev.xclient.data.l[1] := i or (FUseVersion shl 24);
   
  -  InitializeMimeTypesToAtoms;
  -  { TODO: currently we limit ourselves to 3 mime types max. Fix this later }
  -  for i := 0 to 2 do
  -  begin
  -    if i < n then
  -      xev.xclient.data.l[2+i] := FMimeTypesArray[i]
  -    else
  -      xev.xclient.data.l[2+i] := x.None;
  +  if n <= 3 then
  +  begin
  +    for i := 0 to 2 do
  +    begin
  +      if i < n then
  +        xev.xclient.data.l[2+i] := FMimeTypesArray[i]
  +      else
  +        xev.xclient.data.l[2+i] := x.None;
  +    end;
  +  end
  +  else
  +  begin
  +    { available types are in the XdndTypeList property instead }
  +    xev.xclient.data.l[2] := x.None;
  +    xev.xclient.data.l[3] := x.None;
  +    xev.xclient.data.l[4] := x.None;
     end;
   
     XSendEvent(xapplication.Display, ATarget, False, NoEventMask, @xev);
  
positive.code: begin
    { free old array }
    SetLength(FMimeTypesArray, 0);
    { set size of new array }
    SetLength(FMimeTypesArray, FMimedata.FormatCount);
  
    sl := FMimeData.Formats as TStringList;
    try
  
negative.code:     FAcceptedAction: TAtom;
      FMimeTypesArray: array of TAtom;
      xia_plain_text: TAtom;
      procedure   SetTypeListProperty;
      procedure   InitializeMimeTypesToAtoms;
      procedure   Dragging(ev: TXEvent);
      function    IsDNDAware(win: TWindow): boolean;
  