overlappingSprites() returning collision against removed sprites


I've been seeing a bunch of issues with using the overlappingSprites call to check if two sprites with collision windows set are overlapping. This one is somewhat difficult to describe and seems to be highly situational, annoyingly, so is somewhat difficult to describe.

I've gutted one of the projects I've seen this on and uploaded the code for something that can demonstrate it

Assuming you can get this built OK, you should see a stick that moves along a track that is intersected partway through by a laser beam. Pressing the A button will remove the laser sprite and allow the center point of the stick to hit the exit tile.

Now here is the weird one - if you first let the stick hit the laser so that it explodes, press B to restart when prompted, then on the second go hit the A button to remove the laser... the collision against the now removed laser sprite still occurs. Running in the simulator with Sprite Collisions showing does show the sprite as having been removed, so it at least looks like it's colliding against nothing.

The really odd thing is that this seems to be something relating only to the sprites being in particular locations - if you go into stickmaps.lua and change the value of beamV to be {360, 140, 20, 100, 1}, resulting in the laser sprite being generated 100 pixels to the left of the previous position, the issue doesn't occur.

As a sidenote, if you go in spin.lua and uncomment the line setting the object to nil at line 556, you'll get a "Sprite doesn't have a lua proxy" crash as well.