diff --git a/src/Perspex.Controls/Generators/ItemContainerGenerator.cs b/src/Perspex.Controls/Generators/ItemContainerGenerator.cs
index a162ce08de..c945d7b5bf 100644
--- a/src/Perspex.Controls/Generators/ItemContainerGenerator.cs
+++ b/src/Perspex.Controls/Generators/ItemContainerGenerator.cs
@@ -94,9 +94,15 @@ namespace Perspex.Controls.Generators
///
public virtual IEnumerable RemoveRange(int startingIndex, int count)
{
- var result = _containers.GetRange(startingIndex, count);
- _containers.RemoveRange(startingIndex, count);
- Dematerialized?.Invoke(this, new ItemContainerEventArgs(startingIndex, result));
+ List result = new List();
+
+ if (startingIndex < _containers.Count)
+ {
+ result.AddRange(_containers.GetRange(startingIndex, count));
+ _containers.RemoveRange(startingIndex, count);
+ Dematerialized?.Invoke(this, new ItemContainerEventArgs(startingIndex, result));
+ }
+
return result;
}
diff --git a/src/Perspex.Controls/Presenters/CarouselPresenter.cs b/src/Perspex.Controls/Presenters/CarouselPresenter.cs
index d8932b1e78..6776c3a3bc 100644
--- a/src/Perspex.Controls/Presenters/CarouselPresenter.cs
+++ b/src/Perspex.Controls/Presenters/CarouselPresenter.cs
@@ -115,6 +115,7 @@ namespace Perspex.Controls.Presenters
Panel.Children.RemoveAll(containers.Select(x => x.ContainerControl));
}
break;
+
}
}