diff --git a/src/Orchard.Web/Modules/Orchard.Templates/Drivers/TitlePartDriver.cs b/src/Orchard.Web/Modules/Orchard.Templates/Drivers/TitlePartDriver.cs index 7ee00ab15..2a7b6c37c 100644 --- a/src/Orchard.Web/Modules/Orchard.Templates/Drivers/TitlePartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Templates/Drivers/TitlePartDriver.cs @@ -28,11 +28,14 @@ namespace Orchard.Templates.Drivers { var contentTypesWithShapePart = _contentManager .GetContentTypeDefinitions() .Where(typeDefinition => typeDefinition.Parts.Any(partDefinition => partDefinition.PartDefinition.Name == "ShapePart")) - .Select(typeDefinition => typeDefinition.Name) - .ToArray(); + .Select(typeDefinition => typeDefinition.Name); + + // If ShapePart is only dynamically added to this content type or even this content item then we won't find + // a corresponding content type definition, so using the current content type too. + contentTypesWithShapePart = contentTypesWithShapePart.Union(new[] { part.ContentItem.ContentType }); var existingShapeCount = _contentManager - .Query(VersionOptions.Latest, contentTypesWithShapePart) + .Query(VersionOptions.Latest, contentTypesWithShapePart.ToArray()) .Where(record => record.Title == part.Title && record.ContentItemRecord.Id != part.ContentItem.Id) .Count();