It's easiest to explain with a picture:
Here an object is created in a subevent. (This also applies if an object is spawned using Sprite's 'Spawn an object' action.)
In the subevent it was created in, the created instance is picked and can be used. It is still picked in subevents underneath that. The green area highlights the area the created instance can be used.
However, after that, the instance does not really exist, and cannot be used, until the next top level event
(the next event which isn't a subevent to anything else). The next green area shows the next top level event when the instance is finally created.
The area inbetween is subsequent subevents in the same event the object was created. This area is highlighted red, and the instance does not actually exist yet there. So conditions for the sprite placed there will never pick the newly created sprite instance.
The workaround is to try to do everything in the same event - nest the other events beneath the creating event if possible, so everything is moved up in to the green area.
It had to be changed this way because it was unstable to allow objects to be used that way, due to particulars in how the engine works. Some people's projects kept crashing and this change fixed them. Admittedly I did not think this would be too big an issue, especially since Construct Classic had always worked the same way. Still, hopefully once everyone adapts their projects to use the new system it will not be a problem any more.
Edit: another bug is r102 does not count triggers or events in groups as top-level events, which makes it worse. This is fixed in the next build, so it might help fix your project if you use a lot of groups.Ashley2012-09-08 20:15:07