diff --git a/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs b/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs
index de20cc4fe8..0669db97a5 100644
--- a/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs
@@ -133,6 +133,9 @@ namespace Umbraco.Core.Persistence.Repositories
///
public IEnumerable GetAll(params TId[] ids)
{
+ //ensure they are de-duplicated, easy win if people don't do this as this can cause many excess queries
+ ids = ids.Distinct().ToArray();
+
if (ids.Any())
{
var entities = _cache.GetByIds(
diff --git a/src/Umbraco.Core/Persistence/Repositories/ScriptRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ScriptRepository.cs
index f6af195b94..b09930ae3f 100644
--- a/src/Umbraco.Core/Persistence/Repositories/ScriptRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/ScriptRepository.cs
@@ -64,6 +64,9 @@ namespace Umbraco.Core.Persistence.Repositories
public override IEnumerable