Is the smaller one really in front of the big one?
Which is drawn first?
Do you have glEnable(GL_DEPTH_TEST) and glClear(GL_DEPTH_BUFFER_BIT) in your code before that?
Or should the smaller be inside the bigger, then you need to either draw the bigger as second with alpha blending or polygon stipple to look through it.