anchor.diff:    {$IFDEF DEBUG}
     writeln('TfpgImageList.AddItemFromFile');
     {$ENDIF}
  +  
  +  if not FileExists(AFileName) then
  +    Exit;
  +  
     AImageItem := TfpgImageItem.Create;
     AImageItem.LoadFromFile(AFileName);
  -  Item[AIndex] := AImageItem;
  +  if AIndex > -1 then
  +    Item[AIndex] := AImageItem
  +  else
  +  begin
  +    FList.Add(AImageItem);
  +    AImageItem.Index := GetMaxItem+1;
  +  end;
   end;
   
   procedure TfpgImageList.AddImage(AImage: TfpgImage; AIndex: word);
  
positive.code: begin
    AImageItem := TfpgImageItem.Create;
    AImageItem.Image := AImage;
    Item[AIndex] := AImageItem;
  end;
  
  procedure TfpgImageList.RemoveIndex(AIndex: integer);
  
negative.code: var
    ACounter: integer;
  begin
    result := -1;
    for ACounter := 0 to FList.Count - 1 do
      if TfpgImageItem(FList[ACounter]).Index > result then
        result := TfpgImageItem(FList[ACounter]).Index;
  