Actually, I'm having this issue too. My code is a lot more messy than Zerolife's, but the basic order seems to be the same with the only difference being that I only initialize lighting when a key is pressed.
Relevant part of the Camera's render method:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(_fov, _aspect, _zNear, _zFar);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef(_pitch, 1.0f, 0.0f, 0.0f);
glRotatef(_yaw, 0.0f, 1.0f, 0.0f);
glTranslatef(_position.getX(), _position.getY(), _position.getZ());
All the OpenGL'ey stuff from my init method:
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
glShadeModel(GL_SMOOTH);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glClearColor(0.13f, 0.13f, 0.13f, 1.0f);
My light enable block (resides in the main game update method):
if(Keyboard.isKeyDown(LT_KEY))
{
if(!_lightingToggled)
{
_lightingToggled = true;
_lighting = !_lighting;
if(_lighting)
{
FloatBuffer white = BufferUtils.createFloatBuffer(4);
white.put(1.0f).put(1.0f).put(1.0f).put(1.0f).flip();
FloatBuffer POS = BufferUtils.createFloatBuffer(4);
POS.put(1.0f).put(1.0f).put(1.0f).put(0.0f).flip();
glLight(GL_LIGHT0, GL_AMBIENT, white);
glLight(GL_LIGHT0, GL_POSITION, POS);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
}
else
glDisable(GL_LIGHTING);
}
}
else _lightingToggled = false;
All this code combines to produce a game camera that works as normal except that when lighting is enabled, the light seems to fluctuate based on the camera's rotation from full brightness to full darkness. The models are also all lit by half in a direction about 45degrees from the direction of the camera to the object.
Screenies: [Note in particular that the light levels vary greatly depending on which direction the camera faces and the model shading is always exactly the same no matter where its being viewed from]


