Hello. I recently implemented based lighting in my program, but it only lights the model until certain point.

Here is the model face fronting the camera:

Here is after rotating it considerably:

And here is it after rotating it only a little more:

From looking it at back:

And finally, after keeping rotating it:

Here all the lighting related code

Code :

Code :
   GLfloat specular_light[] = {1.0, 1.0, 1.0};
   GLfloat ambient_light[] = {0.0, 0.0, 0.0};
   GLfloat diffuse_light[] = {1.0, 1.0, 1.0};
   GLfloat light_position[] = {0,0,1,0};
   glLightfv(GL_LIGHT0, GL_SPECULAR,specular_light);
   glLightfv (GL_LIGHT1, GL_AMBIENT, ambient_light);
   glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse_light);
   glLightfv (GL_LIGHT0, GL_POSITION, light_position);

Code :
      GLfloat diffuse_mat[] = {color.kd.red,color.kd.green,color.kd.blue};
      GLfloat specular_mat[] = {color.kd.red,color.kd.green,color.kd.blue};
      glMaterialfv (GL_FRONT_AND_BACK,GL_DIFFUSE,diffuse_mat);
      glMaterialfv (GL_FRONT_AND_BACK,GL_SPECULAR,specular_mat);

As can be seen, it starts being lighted, keep that way during some time, suddenly all the light vanishes, thing stay that way during some time while rotating, and then suddenly it comes back, precisely at the same point it vanished, except that now the model is about 3/4 of a full rotating, and not 1/4.

So, there is something wrong? Anyway, what do I have to do to it being illuminated at any position? Is it a normal related stuff?