diff --git a/src/umbraco.cms/businesslogic/Packager/Installer.cs b/src/umbraco.cms/businesslogic/Packager/Installer.cs index 01dc2522bf..43729b0f25 100644 --- a/src/umbraco.cms/businesslogic/Packager/Installer.cs +++ b/src/umbraco.cms/businesslogic/Packager/Installer.cs @@ -624,9 +624,13 @@ namespace umbraco.cms.businesslogic.packager { try { - var m = new Macro(alias); - this.ContainsMacroConflict = true; - this._conflictingMacroAliases.Add(m.Name, alias); + var m = Macro.GetByAlias(alias); + + if (m != null) + { + this.ContainsMacroConflict = true; + this._conflictingMacroAliases.Add(m.Name, alias); + } } catch (IndexOutOfRangeException) { } //thrown when the alias doesn't exist in the DB, ie - macro not there } diff --git a/src/umbraco.cms/businesslogic/macro/Macro.cs b/src/umbraco.cms/businesslogic/macro/Macro.cs index 69b67ef165..91da3f716e 100644 --- a/src/umbraco.cms/businesslogic/macro/Macro.cs +++ b/src/umbraco.cms/businesslogic/macro/Macro.cs @@ -254,7 +254,10 @@ namespace umbraco.cms.businesslogic.macro var alias = XmlHelper.GetNodeValue(n.SelectSingleNode("alias")); //check to see if the macro alreay exists in the system //it's better if it does and we keep using it, alias *should* be unique remember + var m = Macro.GetByAlias(alias); + + if (m == null) { m = MakeNew(XmlHelper.GetNodeValue(n.SelectSingleNode("name"))); @@ -432,7 +435,7 @@ namespace umbraco.cms.businesslogic.macro TimeSpan.FromMinutes(30), () => { - var macro = ApplicationContext.Current.Services.MacroService.GetByAlias(alias); + var macro = ApplicationContext.Current.Services.MacroService.GetByAlias(alias); if (macro == null) return null; return new Macro(macro); });