Dammit paulius.. You got me there ops:

I don't know why that works. My long time experiences tell me that people are always told to initialize their textures using glteximage2d.

Back on topic(now that i know that the code actually works ):
Have you checked that the texture id you are using is the same that you initialized. Have you checked viewport size? Have you checked to see what it renders when you copy to texture? have you textures disabled or set to something else before rendering?