Sdl cursor problem

I am doing a sis 2D hardware accelerate patch for sdl,
The hardware accelerate is ok!
but when I use SDL_HWSURFACE to SetVideoMode
and create another image surface in video mem with SDL_HWSURFACE
flags to SDL_CreateRGBSurface function,

the video display ok, but the when I move cursor or change cursor
the screen area of cursor is error

How can I do with this problem? And how the SDL deal with the cursor?(I didn’t see the source code about cursor of SDL)

BTW: Can someboy explain the ColorKey usage and alpha usage for me?

anything suggestion is appretiate!______________________________________