     
     /**
      *  @private
-     *  Called when the EditManager dispatches a 'selectionChange' event.
-     */
-    private function editManager_selectionChangeHandler(
+     *  Called when the TextFlow dispatches a 'scroll' event
+     *  as it autoscrolls.
+     */
+    private function textFlow_scrollHandler(event:Event):void
+    {
+        var newHorizontalScrollPosition:Number =
+            textFlow.controller.horizontalScrollPosition;
+        var newVerticalScrollPosition:Number =
+            textFlow.controller.verticalScrollPosition;
+
+        if (newHorizontalScrollPosition != _horizontalScrollPosition ||
+            newVerticalScrollPosition != _verticalScrollPosition)
+        {
+            _horizontalScrollPosition = newHorizontalScrollPosition;
+            _verticalScrollPosition = newVerticalScrollPosition;
+
+            dispatchEvent(new Event("scrollPositionChanged"))
+        }
+    }
+
+    /**
+     *  @private
+     *  Called when the TextFlow dispatches a 'selectionChange' event.
+     */
+    private function textFlow_selectionChangeHandler(
                         event:SelectionEvent):void
     {
-        _selectionAnchorPosition = textFlow.interactionManager.anchorPosition; // event.target isn't useful
+        _selectionAnchorPosition = textFlow.interactionManager.anchorPosition;
         _selectionActivePosition = textFlow.interactionManager.activePosition;
         
         dispatchEvent(new Event("selectionChange"));

    
    /**
     *  @private
     *  Called when the EditManager dispatches an 'operationEnd' event
     *  after an editing operation.
     */
    private function editManager_flowOperationEndHandler(
                        event:FlowOperationEvent):void
    {
        //trace("operationEnd");


    /**
     *  @private
     *  Called when the TextFlow dispatches a 'compositionComplete' event
     *  when it has recomposed the text into TextLines.
     */
    private function textFlow_compositionCompleteHandler(
                                    event:CompositionCompletionEvent):void
