Remove child from event listener

ok I have a game that at a certain point starts to omit particles, I give them motion through an event listener called moveParticles, however whenever I try to remove them from the display list, my program crashes,

ActionScript Code:
[LEFT][COLOR=#808080]*//EMITS PARTICLES*[/COLOR]
    [COLOR=#0000FF]public[/COLOR] [COLOR=#000000]**function**[/COLOR] addParticles[COLOR=#000000]([/COLOR]x,y[COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]
        [COLOR=#000000]**var**[/COLOR] particle:[COLOR=#0000FF]MovieClip[/COLOR];
        
        [COLOR=#0000FF]for[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000]**var**[/COLOR] i:[COLOR=#0000FF]int[/COLOR] = [COLOR=#000080]0[/COLOR]; i < [COLOR=#000080]200[/COLOR]; i++[COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]
            particle = [COLOR=#000000]**new**[/COLOR] [COLOR=#0000FF]MovieClip[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR];
            randomParticleX = [COLOR=#0000FF]Math[/COLOR].[COLOR=#0000FF]random[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR] * [COLOR=#000080]60[/COLOR] - [COLOR=#000080]30[/COLOR];
            randomParticleY = [COLOR=#0000FF]Math[/COLOR].[COLOR=#0000FF]random[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR] * [COLOR=#000080]60[/COLOR] - [COLOR=#000080]30[/COLOR];
            particle.[COLOR=#000080]movementX[/COLOR] = randomParticleX;
            particle.[COLOR=#000080]movementY[/COLOR] = randomParticleY;
            particle.[COLOR=#000080]x[/COLOR] = x;
            particle.[COLOR=#000080]y[/COLOR] = y;
            
            particle.[COLOR=#000080]graphics[/COLOR].[COLOR=#0000FF]lineStyle[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000080]1[/COLOR][COLOR=#000000])[/COLOR];
            particle.[COLOR=#000080]graphics[/COLOR].[COLOR=#0000FF]beginFill[/COLOR][COLOR=#000000]([/COLOR]0xFFFFFF[COLOR=#000000])[/COLOR];
            particle.[COLOR=#000080]graphics[/COLOR].[COLOR=#000080]drawCircle[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000080]0[/COLOR],[COLOR=#000080]0[/COLOR],[COLOR=#000080]2[/COLOR][COLOR=#000000])[/COLOR];
            particle.[COLOR=#000080]graphics[/COLOR].[COLOR=#0000FF]endFill[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR];
            particle.[COLOR=#000080]addEventListener[/COLOR][COLOR=#000000]([/COLOR]Event.[COLOR=#000080]ENTER_FRAME[/COLOR],moveParticles[COLOR=#000000])[/COLOR];
            particles.[COLOR=#0000FF]push[/COLOR][COLOR=#000000]([/COLOR]particle[COLOR=#000000])[/COLOR];
            addChild[COLOR=#000000]([/COLOR]particle[COLOR=#000000])[/COLOR];
            
            [COLOR=#000000]}[/COLOR]
        [COLOR=#000000]}[/COLOR]
    [COLOR=#0000FF]public[/COLOR] [COLOR=#000000]**function**[/COLOR] moveParticles[COLOR=#000000]([/COLOR]evt:Event[COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]
        [COLOR=#000000]**var**[/COLOR] thisParticle = [COLOR=#000000]([/COLOR]evt.[COLOR=#0000FF]target[/COLOR] as [COLOR=#0000FF]MovieClip[/COLOR][COLOR=#000000])[/COLOR];
        thisParticle.[COLOR=#000080]x[/COLOR] += thisParticle.[COLOR=#000080]movementX[/COLOR];
        thisParticle.[COLOR=#000080]y[/COLOR] += thisParticle.[COLOR=#000080]movementY[/COLOR];
        [COLOR=#0000FF]if[/COLOR][COLOR=#000000]([/COLOR]evt.[COLOR=#0000FF]target[/COLOR].[COLOR=#000080]x[/COLOR] >= [COLOR=#000080]1000[/COLOR] || evt.[COLOR=#0000FF]target[/COLOR].[COLOR=#000080]x[/COLOR] <= [COLOR=#000080]0[/COLOR] || evt.[COLOR=#0000FF]target[/COLOR].[COLOR=#000080]y[/COLOR] >= [COLOR=#000080]900[/COLOR] || evt.[COLOR=#0000FF]target[/COLOR].[COLOR=#000080]y[/COLOR] <=[COLOR=#000080]0[/COLOR][COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]
            removeChild[COLOR=#000000]([/COLOR]thisParticle[COLOR=#000000])[/COLOR];
            [COLOR=#000000]}[/COLOR]
        [COLOR=#000000]}[/COLOR]

[/LEFT]

removeChild(thisParticle);
thisParticle.removeEventListener(Event.ENTER_FRAME,moveParticles);

Instead MovieClip u can extend Shape class to have movementX and movementY properties

wow, I totally forgot about the eventListeners, thanks Felixz