Glass that hides surfaces?

This one is really puzzling me.
Two of the characters in the scene are behind some glass doors / windows from the camera's POV.
I updated some surfaces in the scene, applying the Uber Iray shader to everything and then applying the glass shader to the glass pieces - windows & glass doors.
After that, the hairs of my two characters, and part of the one character's costume, disappeared from the scene. I checked, and the items still exist in the scene. They weren't deleted or set to invisible.
While moving the camera around, it turned out that the missing things were still visible through one of the glass panes, but the other somehow filtered them out!
I moved the camera past the glass and into the room, and sure enough all the items were completely visible.
I tried copying the surface from the pane through which the items are visible to the pane through which they are not. No luck.
So I'm at a loss. How can one window make certain surfaces invisible, while the one next to it lets them be seen? Especially since copying the surface from one to another should make both windows identical?
In the textured (non-Iray) view, the "shows surfaces" window does appear slightly bluer than the "hides surfaces" window, if that means anything.
Any ideas?
Comments
If you render they are still there. I've noticed it too, and it doesnt bother me. Probably because hair also uses some transparancy, and maybe the viewport renderer cant handle that :)
Transparency stacks exponentially in OpenGL, so even 90% opacity gets rendered as 100% transparency if there's a transparency of greater value between the camera and the object.
Or something like that.
OK, I will try the render and see what happens. Even if it's the multiplying transparency thing, doesn't make sense to me why they'd be visible through one window and not another.