It could be that your drawing your sprite, but then the SYNC is over-writing it with the rest of the sprites. Like, when you draw the sprite, it draws it straight to the back buffer, regardless of depth, because in this case it's depth is considered 1, as it's being drawn manually. But then the other sprites are being drawn onto the backbuffer, on top of your sprite.
I think you need to do some experiments with the manual sync stuff, like update(), update2d(), swap() etc etc because you'll need to break SYNC down into it's component parts, then find the right time to draw your sprite so that it appears on top of everything else.
I am the one who knocks...