problem on picking point with JOGL

hi guys
i need to pick some point on the JOGL canvas
with gluUnproject.

i’m totally new with opengl.

first, reshape method:

gl.glViewport(0, 0, width, height);
		gl.glMatrixMode(GL.GL_PROJECTION);
		gl.glLoadIdentity();
		glu.gluPerspective(45.0f, h, 1.0, 20.0);
		gl.glMatrixMode(GL.GL_MODELVIEW);
		gl.glLoadIdentity();

display:


               gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
		gl.glLoadIdentity();
		
		gl.glPushMatrix();
		gl.glTranslatef(-1.5f, 0.0f, -6.0f); // WHY THIS???
		draw(gl);
		
		if(detect)performSelection(gl);
		
		gl.glPopMatrix();
		gl.glFlush();

in draw… i draw the point Vector3D x0: (0.6, 1, 2)

and performSelection is:

take the eye’s point

glu.gluUnProject(width/2, height/2, 0, 
            mvmatrix, 0, projmatrix, 0, viewport, 0, wcoord, 0);
        //System.out.println("World coords at z=0.0 are ( "+ wcoord[0] + ", " + wcoord[1] + ", " + wcoord[2]+ ")");

        Vector3D x1 = new Vector3D(wcoord[0], wcoord[1], wcoord[2]);  

take the mouse point on my near plane:

glu.gluUnProject( x,  realy, 1, //
            mvmatrix, 0, projmatrix, 0, viewport, 0, wcoord, 0);
        //System.out.println("World coords at z=1.0 are ("+ wcoord[0] + ", " + wcoord[1] + ", " + wcoord[2]+ ")");
        Vector3D x2 = new Vector3D(wcoord[0], wcoord[1], wcoord[2]);

make the line between x1 and x2
and do the distance between line and x0.

now, my problem is that it doesn’t work… if i mouve the mouse on the point distance is 0.2, and if i move the mouse on the bottom left cornet is 3, ok.
but if i move the mouse on the bottom (different y) but aligned with point x…
i get 0.2 too.

why??
can you help me?