Double buffering and stuff

I’d like to get the sequence to enable double buffering correct.
I have the PFD_DOUBLEBUFFER flag in my Pixelformatdescriptor, and i return TRUE in OnEraseBackground(). Then in in my paint function i make the rendering context current. I clear my buffer with glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT). Does it matter if this is placed between glPushMatrix and glPopMatrix? I then call some display lists, and Swapbuffers after i call glPopMatrix. Is this correct?
If so…why do i still flicker?
If i must use glDrawBuffer(GL_BACK), where do i put that?
Thanx in advance.