Your viewport does not necessarily map one to one to the dimensions of your viewing frustrum. So calculating based on your viewport is wrong. If you use gluPerspective you’ll have to use the FOV, Aspect Ratio, and Near value plus some trigonometry to figure out what the true centre is. If you use glOrtho or gluOrtho2d then Centrex = Left + (Right - Left)/2 and CentreY = Bottom + (Top - Bottom)/2.
Also call glLoadIdentity after glPushMatrix. Otherwise any transforms before the cross hair code will affect it.
[EDIT] A lazy way to get you’re centre with a perspective projection is to gluUnproject the centre of your viewport (the one you had calculated). It should be much slower than doing the maths but just as reliable.
[This message has been edited by Furrage (edited 03-19-2002).]