Why green-flag twice?
We've all done it at some point... expected Scratch to run our scripts in a particular order... and got burned for it later on...
I've seen this kind of thing cause problems so often that I decided it was time to make a simple demonstration project about it.
When it comes up again in the forums, I'll be able to point towards this project and hopefully it will help to explain how to rewrite the scripts so it doesn't happen again!
If you want to understand more about how Scratch decides the order to start up scripts for a particular event, both within a sprite and across sprites, then take a look at this demo project: