glReadPixels fail in 16 bit window color mode.

My glReadPixels works fine for 32 bit window mode but in 16 bit window mode, it always return 0. I think it must something to do with 16 bit window mode issue but any suggestion on solving this problem?