try listening to the ROLL_OUT event, instead.
If your MovieClip's mouseChildren property is not set to false, it is plausible that you are triggering the MOUSE_OUT event before you expect to depending on the contents of the MovieClip.
Well this problem can be solved if you replace your code of MouseEvent.MOUSE_OUT to Event.ENTER_FRAME event. You need to use it because mouse-Movements are not captured sometimes in Mouse-Event listeners also because swf frame-rate is normally too faster to track mouse movements so use Event.ENTER_FRAME.
And i have faced such kind of problem before. So add listener to stage like this
addEventListener(Event.ENTER_FRAME,removeMovieClip)
Now before removing an object or movieClip from container , put checks also like
public function removeMovieClip(evt:Event):void
{
If(ParentClip.contains(ChildClip)) ParentClip.removeChild(ChildClip)..
}
Check that your mouse position is in stage coordinates (NOT your child movieclip coordinates).
In other words make sure you are using stage.mouseX, stage.mouseY
as opposed to implicitly using the local member variables inside the movieclip (which will give the mouse position relative to the movieclip.)
hitTestPoint requires the point to be given as stage coordinates.