Odd MOUSE_OUT behavior

I’m attempting to create a custom cursor that will appear when I mouse over a line. Ultimately I want to be able to move the line up and down during MOUSE_DOWN, and have the cursor change back to the regular cursor on MOUSE_UP (same as when you drag the edge of any application window to make it bigger or smaller). But for the moment I’m stuck on some strange behavior.

Here is my code, which can be pasted in its entirety into the Flash IDE to see the behavior:

var customCursor:Sprite = new Sprite();
customCursor.graphics.lineStyle(2, 0xFF0000);
customCursor.graphics.moveTo(0, -20);
customCursor.graphics.lineTo(0, 20);
customCursor.graphics.moveTo(-5, -8);
customCursor.graphics.lineTo(0, -20);
customCursor.graphics.lineTo(5, -8);
customCursor.graphics.moveTo(-5, 8);
customCursor.graphics.lineTo(0, 20);
customCursor.graphics.lineTo(5, 8);

var line:Sprite = new Sprite();
line.graphics.beginFill(0x0000FF);
line.graphics.drawRect(50, 200, 300, 20);
line.graphics.endFill();
addChild(line);
addChild(customCursor);

customCursor.visible = false;

line.addEventListener(MouseEvent.MOUSE_OVER, changeCursor);
line.addEventListener(MouseEvent.MOUSE_OUT, outHandler);

function changeCursor(e:MouseEvent) {
    Mouse.hide();
    customCursor.visible = true;
    customCursor.x = mouseX;
    customCursor.y = mouseY;
    addEventListener(Event.ENTER_FRAME, dragLine);
}

function dragLine(e:Event):void {
    customCursor.x = mouseX;
    customCursor.y = mouseY;
//  line.startDrag();
}

function outHandler(e:MouseEvent):void {
    trace("firing outHandler()");
//  removeEventListener(Event.ENTER_FRAME, cursorFollow);
//  customCursor.visible = false;
//  Mouse.show();
}

A couple of notes:
[LIST]
[]I made the line thick to demonstrate what I’m seeing.
[
]The commented lines are the functionality I want but I’m commenting them out to focus on the behavior I’m seeing.
[/LIST]What you’ll see when you mouse over the line is that the cursor changes as expected. However, pay attention to the trace: “firing outHandler()” gets traced out repeatedly with movement of the cursor, EVEN when you’re limiting cursor movement to over the line Sprite. So Flash seems to be saying you’re mousing out of the sprite when in fact you’re not.

This is the behavior I’m confused about. If you go ahead and uncomment the commented code, you will see the result of this behavior is that the cursor flickers constantly between the custom cursor and the mouse arrow during movement of the cursor.

What gives?