diff --git a/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Tree/Mapping.hbm.xml b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Tree/Mapping.hbm.xml
new file mode 100644
index 00000000..e4c9b058
--- /dev/null
+++ b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Tree/Mapping.hbm.xml
@@ -0,0 +1,17 @@
+
+
+    
+        
+            
+        
+        
+        
+        
+            
+            
+            
+        
+    
+
\ No newline at end of file
diff --git a/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Tree/TreeEntity.cs b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Tree/TreeEntity.cs
new file mode 100644
index 00000000..2c475fda
--- /dev/null
+++ b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Tree/TreeEntity.cs
@@ -0,0 +1,26 @@
+using System.Collections.Generic;
+using NHibernate.Envers.Configuration.Attributes;
+
+namespace NHibernate.Envers.Tests.NetSpecific.Integration.Tree
+{
+	[Audited]
+	public class TreeEntity
+	{
+		public virtual long Id { get; set; }
+		public virtual string Name { get; set; }
+		public virtual TreeEntity Parent { get; set; }
+		public virtual IList Children { get; protected set; } = new List();
+		
+		public override bool Equals(object obj)
+		{
+			if (!(obj is TreeEntity other))
+				return false;
+			return Id == other.Id;
+		}
+
+		public override int GetHashCode()
+		{
+			return Id.GetHashCode();
+		}
+	}
+}
\ No newline at end of file
diff --git a/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Tree/TreeTest.cs b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Tree/TreeTest.cs
new file mode 100644
index 00000000..a94bd07e
--- /dev/null
+++ b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/Tree/TreeTest.cs
@@ -0,0 +1,57 @@
+using System.Collections.Generic;
+using NUnit.Framework;
+
+namespace NHibernate.Envers.Tests.NetSpecific.Integration.Tree
+{
+	public class TreeTest : TestBase
+	{
+		private long parentId;
+		private long childId;
+
+		public TreeTest(AuditStrategyForTest strategyType) : base(strategyType)
+		{
+		}
+
+		protected override IEnumerable Mappings => new[] {"NetSpecific.Integration.Tree.Mapping.hbm.xml"};
+
+		protected override void Initialize()
+		{
+			var parent = new TreeEntity {Name = "Parent"};
+
+			using (var tx = Session.BeginTransaction())
+			{
+				parentId = (long) Session.Save(parent);
+				tx.Commit();
+			}
+
+			var child = new TreeEntity
+			{
+				Name = "Child",
+				Parent = new TreeEntity {Id = parentId}
+			};
+
+			using (var tx = Session.BeginTransaction())
+			{
+				childId = (long) Session.Save(child);
+				tx.Commit();
+			}
+		}
+
+		[Test]
+		public void VerifyRevisionCount()
+		{
+			CollectionAssert.AreEquivalent(new[] {1}, AuditReader().GetRevisions(typeof(TreeEntity), parentId));
+			CollectionAssert.AreEquivalent(new[] {2}, AuditReader().GetRevisions(typeof(TreeEntity), childId));
+		}
+
+		[Test]
+		public void VerifyHistory()
+		{
+			var rev1 = AuditReader().Find(parentId, 1);
+			var rev2 = AuditReader().Find(parentId, 2);
+
+			Assert.IsNotNull(rev1.Name);
+			Assert.IsNotNull(rev2.Name);
+		}
+	}
+}
\ No newline at end of file