Steven solved the logic problem nicely with the check for being 'active', but on my machine, there is a different problem that remains:
+ Sprite2: On collision between Sprite2 and Sprite2
That causes somewhat random crashes on my machine. Construct has no good way to differentiate between the two different instances of Sprite2 there, and it seems to cause problems.
In the event that you've not had to deal with such a problem before, I'll discuss a common way to deal with it.
The easy way to deal with needing to pick two different instances of the same object in the same event is to add that object into a family (let us use Blue family.) Here, if a Sprite2 is 'active' and has collided with any other Sprite2, the other Sprite2 is also set to 'active':
+ Sprite2: Value 'active' Equal to 1
+ Sprite2: On collision between Sprite2 and Blue
-> Blue: Set 'active' to 1
In this way, any actions performed upon Sprite2 within that event will only affect Sprite2 objects that have the 'active' var set and have collided with a Blue family member (which only contains Sprite2 objects here.) Any actions performed upon Blue in that event will only affect the Blue member that was collided with by the aforementioned Sprite2 object.