Access Violation when closing an Aurelius Dataset

procedure TCustomAureliusDataset.ClearInternalList;
begin
  // if the list contain TCriteriaResult objects, then
  // destroy those objects since they are not being managed anywhere

  // Extra check for FInternalList
  if not Assigned(FInternalList) then
    Exit;

  if (FInternalList.Count > 0) and (FInternalList[0] is TCriteriaResult) then //FInternalList[0] is nill
    FInternalList.OwnsObjects := true;
  try
    FInternalList.Clear;
  finally
    FInternalList.OwnsObjects := false;
  end;
end;

The code that caused the exception
FInternalList[0] is nil