    float d;            // distance from surface to light source
    vec3  VP;           // direction from surface to light position
    vec3  halfVector;   // direction of maximum highlights
+
+   if (dot(normal, eye) < 0)
+   {
+       normal *= -1;
+   }
 
    // Compute vector from surface to light position
    VP = vec3 (gl_LightSource[i].position) - ecPosition3;

   else
   {
       pf = pow(nDotHV, gl_FrontMaterial.shininess);

   }
   Ambient  += gl_LightSource[i].ambient * attenuation;
   Diffuse  += gl_LightSource[i].diffuse * nDotVP * attenuation;
   Specular += gl_LightSource[i].specular * pf * attenuation;

}

void shade(in vec3 normal, in vec3 ecPoint) {

  Ambient = vec4(0.0);
  Diffuse = vec4(0.0);
  Specular = vec4(0.0);
  
#pragma lights
 
  vec4 color = //gl_FrontLightModelProduct.sceneColor +
    Ambient  * gl_FrontMaterial.ambient +
