Hi Zak,
this is common problem I had with OpenGL too - it rotates the object, but it is not done using the object local axes, but global ones.
I attach example for you, which should do what you need, but using TBGL entity system.
Entity system calculates the transformations on its own (partially assembler optimized thanks to Charles) and then passes the final result to OpenGL.
Bookmarks