diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/Handlers/TaxonomyPartHandler.cs b/src/Orchard.Web/Modules/Orchard.Taxonomies/Handlers/TaxonomyPartHandler.cs index 27dc26c42..e9d859085 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/Handlers/TaxonomyPartHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/Handlers/TaxonomyPartHandler.cs @@ -22,12 +22,15 @@ namespace Orchard.Taxonomies.Handlers { Filters.Add(StorageFilter.For(repository)); OnPublished((context, part) => { var previousTermTypeName = part.TermTypeName; - taxonomyService.CreateTermContentType(part); - - if (previousName != null && part.Name != previousName) { - - // remove previous term type - contentDefinitionManager.DeleteTypeDefinition(previousTermTypeName); + + if (previousName == null || part.Name == previousName) { + // is it a new taxonomy ? + taxonomyService.CreateTermContentType(part); + } + else { + // keep the previous term type name as it would otherwise force us + // to update all terms to use another type + part.TermTypeName = previousTermTypeName; // update existing fields foreach (var partDefinition in contentDefinitionManager.ListPartDefinitions()) {