Multitexture & two pass texture blending

At last I get my hand on a piece of display card that supports multitexture I write a short project to play with the ARB_multitexture extension using lightmap. It works well, but with some certain lightmap, the result is much darker when using multi pass texture blending than multitexture. This is how I do it:
When using multitexture, I set GL_TEXTURE0_ARB to the texture, and GL_TEXTURE1_ARB to the lightmap. The texture is a 24bit RGB. The light is a 8bit grayscale picture, so I load it with format GL_LUMINANCE. I set the glTexEnv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE), so the luminance will multiply with the fragment color when applying lightmap.
When using 2 pass texture blending, I render the polygon with texture first, then bind to the lightmap, enable blending with a glBlendFunc(GL_ZERO, GL_SRC_COLOR), I think this will also multiply the fragment color with luminance too. But the result is, with some lightmap, the two methods looks the same, but with some other, the result using 2 pass texture blending is much darker then using multitexture.
If you read this far, I hope I have explained my problem clearly with all this, now can anyone tell me why this happen?

What graphics card are you using and what color depth (32bit, 16bit) ? If you’re on 16bit it may be a precision problem.

I am using rage128. About the color depth, since I am using glut, I do not set the color depth directly, I think it use the screen color depth, and the problem exits both under 16bit color and 32bit color.

I fixed the problem, but it is very strange. My program can switch between multitexture and multi render pass. I found only when I switch from multitexture to multi texture blending, will this problem happen. In the end, when using multitexture, I enable the second texture stage(the lightmap) with glEnable(GL_TEXTURE_2D) before glDrawElements() and disable it with glDisable(GL_TEXTURE_2D) after it(I had it enabled all the time before), that fixed it . I have not written any multitexture program before and I have not seen any info about this sitiuation when using multitexture, can anyone explain why this happens?

[This message has been edited by Nil_z (edited 03-08-2001).]