Well, have you tried GL_ONE_MINUS_SRC_COLOR or GL_DST_COLOR? I really don't know what to say since I know enough to point out the problem, just not the solution. I'm not a 3D guy either, honestly.