diff --git a/umbraco/cms/businesslogic/macro/MacroEngineFactory.cs b/umbraco/cms/businesslogic/macro/MacroEngineFactory.cs index 245c6a4cb2..e738664bf5 100644 --- a/umbraco/cms/businesslogic/macro/MacroEngineFactory.cs +++ b/umbraco/cms/businesslogic/macro/MacroEngineFactory.cs @@ -11,6 +11,8 @@ namespace umbraco.cms.businesslogic.macro { private static readonly Dictionary m_engines = new Dictionary(); private static readonly List m_allEngines = new List(); + private static object locker = new object(); + public MacroEngineFactory() { Initialize(); @@ -39,7 +41,11 @@ namespace umbraco.cms.businesslogic.macro { try { - m_engines.Add(typeInstance.Name, t); + lock (locker) + { + if (!m_engines.ContainsKey(typeInstance.Name)) + m_engines.Add(typeInstance.Name, t); + } } catch (Exception ee) {