Drawing the gun really close to the camera may not completely fix the problem. You may want to actually draw the gun in front of everything else, by changing the DepthRange.

Mabye something like this:
Code:
  glDepthRange(0, 0.1); //Always draw on top of world
    DrawGunModel;
  glDepthRange(0.1, 1);

  DrawScene;