or just disable depth test if if you draw the guns last

DrawWorld;
glDisable(gl_depth_test);
DrawGun;
glEnable(gl_depth_test);

Kaz, I don't see how your solution makes sense. Wouldn't you sacrifice a heckload of depth precision doing that and clip the scene further away from the camera?