glPushMatrix()

I have started to learn OpenGL by reading the Redbook. I am using C++ Builder 5.By changing one of its examples I was planning to create two isocohedrons with different scales and in different places.
For this purpose I have created a display function and in this display function, I have done scaling and translating in between glPushMatrix and glPopMatrix.I was expecting the code would ignore the first scaling and translating that I have performed and make the new ones in the second display call independent of the first call. But it didnt happen. I really wonder what I am doing wrong.
Thanks in advance.
Please help!!!

Another great site with good tutorials is
http://nehe.gamedev.net

(These tutorials start from a examples and then explaining the code.)

I tested the same codes not in a seperate function (display in my example) directly in the main function. This time it works.

And I still dont know why it doesnt work in a fuction called.