Thanks for all the tips guys :wink:
I have now removed this code from the collision procedure and placed it in my psPlaying state. Enemy.dead is now the final call in the collision procedure and is not accessed thereafter. Seems to be working 100%.
[pascal]if (enemy.hit) then
Enemy := TEnemy.create(dxspriteEngine.Engine);