Delegate called progressively more every time it's added to different actors

Not sure what I’m doing wrong here. Every time I add a delegate to an actor, when the event is broadcast it calls the function an extra time. So if I add it to actor A it’s called once, then if I add it on Actor B it’s called twice,progressively increasing.
It should just be called once per actor.

void FMyModule::OnActorSpawned(AActor* Actor) {
	ABrush* Brush = Cast<ABrush>(Actor);
	Brush->GetOnBrushRegisteredDelegate().AddRaw(this, &FMyModule::OnBrushRegistered);
}
void FMyModule::OnBrushRegistered(ABrush* Brush) {
	UE_LOG(LogTemp, Warning, TEXT("OnBrushRegistered %s"), *Brush->GetName());
}


Log output:

OnBrushRegistered Actor1
OnBrushRegistered Actor2
OnBrushRegistered Actor2
OnBrushRegistered Actor3
OnBrushRegistered Actor3
OnBrushRegistered Actor3

Expected output:

OnBrushRegistered Actor1
OnBrushRegistered Actor2
OnBrushRegistered Actor3

I just noticed GetOnBrushyRegisteredDelegate() is a static function, so this should work?

	if (!ABrush::GetOnBrushRegisteredDelegate().IsBoundToObject(this)) {
		ABrush::GetOnBrushRegisteredDelegate().AddRaw(this, &FMyModule::OnBrushRegistered);
	}