I don't use acquire_screen() and released_screen() used to annoy me because they get very spread out over the entire loop and eventually i got rid of them and i can't remember why now, but i think acquire_screen is only needed when your using primitives, rather than bitmaps.
But I don't understand why this wouldn't work (standard blitting code):
You only need to worry about masked_blit when you want transparency (say for your moving character).
Just put that in between acquire and release screen and i don't see why it shouldn't work :S.
And oh btw, I have to ask why these dimensions:
masked_blit(screen , screen, 0, 0, 90, 90, 70,70);
It seems a weird area of the screen to copy.