Av in responsive list

You can sometimes get an AV when setting the itemindex on a responsive list.

Steps to reproduce
1) load a list with 20 items
2) set the itemindex to 19 to select the last item
3) clear the list
4) add 5 items
5) set the item index to 0 to select the first item ---> AV

I tracked the problem down to the SetItemIndex procedure which tries to set selected = false on the old item before moving it to the new one.  Which of course no longer exists, hence the AV. 

I've hacked the code as follows to make it work for me

procedure TTMSFNCResponsiveList.SetItemIndex(const Value: Integer);
begin
  if (FItemIndex <> Value) then
  begin
    if (FItemIndex <> -1) and (FItemIndex <= items.Count - 1)  then
      Items[FItemIndex].FSelected := false;


    FItemIndex := Value;


    if (FItemIndex <> -1) then
      Items[FItemIndex].FSelected := true;
    Refresh;
  end;
end;