Alphablit

I have a problem with a slow (as hell) alphablit. Whats is wrong and how do
I speed it up?

-----------------CODE--------------------
void CAnimSprite::drawAnimAlpha(SDL_Surface *img, SDL_Surface *target,
CAnimSprite *obj, int alphaVal)
{
int ani;
ani=obj->getCurAnim();

SDL_SetAlpha(img,SDL_SRCALPHA|SDL_RLEACCEL,10);
//target ?r den rect d?r bilden slutligen ska blitas dvs SDL_Surface *screen
SDL_Rect dest;
dest.x=int(obj->getX());
dest.y=int(obj->getX());

    //0 ska vara animstep
    SDL_Rect src;
    src.x=obj->AnimRect[ani].GetSrcX();
    src.y=obj->AnimRect[ani].GetSrcY();
    src.w=obj->AnimRect[ani].GetSrcW();
    src.h=obj->AnimRect[ani].GetSrcH();

    SDL_BlitSurface(img, &src, target, &dest);

if(obj->Anim) //r?knar upp om true, h?r ?r lite att fixa.
{
if((obj->LastAnimTime + obj->AnimSpeed)<(int)SDL_GetTicks())
{
if(ani>obj->AnimLeight)
{
if(obj->LoopAnim=true){ani=0;}
}
// else{obj->setBoolAnim(false);}
obj->setCurAnim(ani+1);
obj->setLastAnimTime((int)SDL_GetTicks());
}
}

}
--------------------END OF CODE----------------------

//Perra