Get world coordinate

Hi guys,
I create my point cloud viewer and now i'm trying to implement mouse points picking. I find a lot of tutorials about this issue but i have some problems.
i draw on the screen my point cloud by:

and I pick a point by ray tracing.
I create a simple example where a set of points (1,0,0) (2,0,0) (3,0,0) (4,0,0) ... (10,0,0) are drawn on the screen but i can pick the point only if i move the mouse between first point and second one. If I rotate this points by trackball i have similar problem. I'm not to be able to find a solution. I search on google for long times but nothing help me to solve this problem.
Please help me!!

This is just a personal opinion but when I got serious about picking a point on the screen and needing to know the exact world coordinate I abandoned gluUnProject and created an extra render buffer that records the world coordinate in the fragment shader.
Now I don't have any trouble (and it is super fast) for the cost of a little graphics memory.

This is just a personal opinion but when I got serious about picking a point on the screen and needing to know the exact world coordinate I abandoned gluUnProject and created an extra render buffer that records the world coordinate in the fragment shader.
Now I don't have any trouble (and it is super fast) for the cost of a little graphics memory.

can you post an example? I have problem to get 3D coordinate from 2D screen coordinate. How can extra buffer solve my problem?

The main advantage of recording something in the fragment shader is that the value z is still in 32-bit precision whereas the depth buffer is often 24-bit.
Just recording the z value in a float texture buffer and doing the screen to world logic in the pick code on the cpu will also work and is probably faster.