It looks like the glFrustum call in gemframebuffer is messing up the matrices. Resize the example patch to 640x480 to see it happen. I think it is too late to reset the frustum in postrender() so each gemhead after is wrong. Maybe each gemhead has to set it using the GemMan settings? There might be another solution as well.