glTexImage2D bug?

I just spent all day trying to figure out why my texture loading code wasn't working. It seems to be that glTexImage2D won't take source pixels with a BGRA UNSIGNED_SHORT_1_5_5_5_REV format. The texture ends up completely white. However, if I change it to RGBA then it loads fine, but blue/red are swapped. (obviously) I could just as easily reformat my textures, but this is really annoying. Is this a GL bug? glDrawPixels handles it with no problem.