Index: Source/NoesisRuntime/Private/NoesisTypeClass.cpp
===================================================================
--- Source/NoesisRuntime/Private/NoesisTypeClass.cpp	(revision 12615)
+++ Source/NoesisRuntime/Private/NoesisTypeClass.cpp	(revision 12616)
@@ -2148,6 +2148,11 @@
 	{
 		ObjectMap.Remove(Object);
 	}
+
+	for (auto Pairs : EventMap)
+	{
+		check(Pairs.Value.Empty());
+	}
 }
 
 class NoesisMaterialWrapper
@@ -2503,6 +2508,21 @@
 		return nullptr;
 	}
 
+	auto CountEvents = [](const Noesis::TypeClass* TypeClass)
+	{
+		int32 Count = 0;
+		do
+		{
+			Count += (int32)TypeClass->GetNumEvents();
+			TypeClass = TypeClass->GetBase();
+		} while (TypeClass != nullptr);
+		return Count;
+	};
+
+	const Noesis::TypeClass* TypeClass = Wrapper->GetClassType();
+	int32 EventCount = CountEvents(TypeClass);
+	Wrapper->EventMap.Reserve(EventCount);
+
 	auto Found = Wrapper->EventMap.Find(Property);
 	if (Found == nullptr)
 	{
