Girando um objeto em torno de um ponto fixo em opengl

Eu tenho um problema com este código openGL:

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPushMatrix(); // put current matrix on stack

//glTranslatef(0.0f, 0.0f, 0.0f);   
//glTranslatef(-4*1.5, 0.0, 4*1.5);

glRotatef(rotationAngle, 0.0f, 1.0f, 0.0f); // rotate the robot on its y-axis
glTranslatef(xpos, ypos, zpos);
DrawRobot(xpos, ypos, zpos); // draw the robot
glPopMatrix();

O que devo fazer para fazer meu robô girar em torno do ponto em que ele está atualmente situado e não em torno da origem? Eu acho que o problema está neste trecho.