How to obtain world coordinates of the point in shader?

i need to restore the 3d position of the screen pixel. my scene is rendered using FBO and then displayed on a quad. my screen pixel is the

 point = gl_ModelViewProjectionMatrix * gl_Vertex 

i use


as varying and send it to the fragment shader. if i understand everything correctly i need to do 2 operations. i take the inverse Projection and ModelView matrices which i used to render the scene (not the matrices used for the FBO quad rendering) and send it to the shader. then i first multiply inverse projection matrix

 vec4 v_cam = proj_inv * point 

and after i restore the 3d vertex multiplying inverse model view matrix

 vec4 vertex = mview_inv * v_cam 

unfortunately i have wrong result. does anyone know how to do this correctly?

I just had to deal with this:;f=11;t=001273#000006