Unhandled exception( ATIOGLXX.DLL ) : 0xC0000005: Access Violation

gluNurbsSurface(theNurb,
U_KnotSize,
u,
V_KnotSize,
v,
( U_CtrlPntHighestIndex +1 )*3,
3,
&ctrlpoints[0][0],
pSurface->GetU_Degree() + 1,
pSurface->GetV_Degree() + 1,
GL_MAP2_VERTEX_3);

I use it to draw my bsurface. When I directly draw surface, there is no problem. But if I draw it using display list, the error occured. I want to know the reason of the problem. Thanks for any help!