Gorg, your method will work only if you have the extension GL_EXT_separate_specular_color available on your graphics card !
Before this extension appeared, the method was the following one :
Define the material with appropriate diffuse and ambient reflectance and zero for the specular reflectance coefficients.
Define and enable lights.
Define and enable texture to be combined with diffuse lighting.
Define modulate texture environment.
Draw lit, textured object into the color buffer.
Define new material with appropriate specular and shininess and zero for diffuse and ambient reflectance.
Disable texturing, enable blending, set the blend function to GL_ONE, GL_ONE.
Draw the specular-lit, non-textured geometry.
This has been taken from : http://reality.sgi.com/blythe/sig99/advanced99/notes/node127.html
With OpenGL, you can do almost everything without extensions ! The only problem is that, in this case, you’re likely to draw your object several times (have a look at the “Per-Pixel Lighting with Unextended OpenGL!” technique).