diff --git a/src/Umbraco.Core/Models/PropertyType.cs b/src/Umbraco.Core/Models/PropertyType.cs
index bcafd549f0..75c2a7cc00 100644
--- a/src/Umbraco.Core/Models/PropertyType.cs
+++ b/src/Umbraco.Core/Models/PropertyType.cs
@@ -178,6 +178,7 @@ namespace Umbraco.Core.Models
///
/// For generic properties, the value is null.
[DataMember]
+ [DoNotClone]
public Lazy PropertyGroupId
{
get => _propertyGroupId;
diff --git a/src/Umbraco.Tests/Models/PropertyTypeTests.cs b/src/Umbraco.Tests/Models/PropertyTypeTests.cs
index 568d12264d..f4c563971b 100644
--- a/src/Umbraco.Tests/Models/PropertyTypeTests.cs
+++ b/src/Umbraco.Tests/Models/PropertyTypeTests.cs
@@ -1,5 +1,7 @@
using System;
using System.Diagnostics;
+using System.Linq;
+using System.Reflection;
using NUnit.Framework;
using Umbraco.Core.Models;
using Umbraco.Core.Serialization;
@@ -49,9 +51,9 @@ namespace Umbraco.Tests.Models
Assert.AreEqual(clone.ValidationRegExp, pt.ValidationRegExp);
Assert.AreEqual(clone.ValueStorageType, pt.ValueStorageType);
- //This double verifies by reflection
+ //This double verifies by reflection (don't test properties marked with [DoNotClone]
var allProps = clone.GetType().GetProperties();
- foreach (var propertyInfo in allProps)
+ foreach (var propertyInfo in allProps.Where(p => p.GetCustomAttribute(false) == null))
{
Assert.AreEqual(propertyInfo.GetValue(clone, null), propertyInfo.GetValue(pt, null));
}