anchor.diff:  begin
     { free old array }
     SetLength(FMimeTypesArray, 0);
  -  { set size of new array }
  -  SetLength(FMimeTypesArray, FMimedata.FormatCount);
  +  { set size of new array. Extra element for the terminating x.None value }
  +  SetLength(FMimeTypesArray, FMimedata.FormatCount+1);
   
     sl := FMimeData.Formats as TStringList;
     try
  
positive.code:     xia_plain_text := XInternAtom(xapplication.Display, 'text/plain', TBool(False));
      FProposedAction := xapplication.GetAtomFromDropAction(ADefaultAction);
      xapplication.Drag := self;
      XSetSelectionOwner(xapplication.Display, xapplication.XdndSelection, FSource.WinHandle, CurrentTime);
      win := XGetSelectionOwner(xapplication.Display, xapplication.XdndSelection);
      if win <> FSource.WinHandle then
        raise Exception.Create('Application failed to aquire selection owner status');
    end;
  end;
  
  
negative.code: 
  { TfpgX11Drag }
  
  procedure TfpgX11Drag.SetTypeListProperty;
  begin
    XChangeProperty(xapplication.Display, FSource.WinHandle,
        xapplication.XdndTypeList, XA_ATOM, 32,
        PropModeReplace, @FMimeTypesArray[0], Length(FMimeTypesArray));
  end;
  
  procedure TfpgX11Drag.InitializeMimeTypesToAtoms;
  var
    sl: TStringList;
  