Girando un objeto alrededor de un punto fijo en opengl

Tengo un problema con 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();

¿Qué debo hacer para que mi robot gire alrededor del punto en el que se encuentra actualmente y no alrededor del origen? Creo que el problema radica en este fragmento.

Respuestas a la pregunta(4)

Su respuesta a la pregunta