diff --git a/SabreTools.DatItems/DatItem.cs b/SabreTools.DatItems/DatItem.cs
index 22bd83b8..cc7b0374 100644
--- a/SabreTools.DatItems/DatItem.cs
+++ b/SabreTools.DatItems/DatItem.cs
@@ -559,8 +559,16 @@ namespace SabreTools.DatItems
/// True if the items are duplicates, false otherwise
public virtual bool Equals(DatItem? other)
{
+ // If the other value is null
+ if (other == null)
+ return false;
+
+ // Get the types for comparison
+ ItemType selfType = GetStringFieldValue(Models.Metadata.DatItem.TypeKey).AsEnumValue();
+ ItemType otherType = other.GetStringFieldValue(Models.Metadata.DatItem.TypeKey).AsEnumValue();
+
// If we don't have a matched type, return false
- if (GetStringFieldValue(Models.Metadata.DatItem.TypeKey).AsEnumValue() != other?.GetStringFieldValue(Models.Metadata.DatItem.TypeKey).AsEnumValue())
+ if (selfType != otherType)
return false;
// Compare the internal models