         var containerController:IContainerController =
             textFlow.flowComposer.getControllerAt(0);
 
+        var oldHorizontalScrollPosition:Number = _horizontalScrollPosition;
         var newHorizontalScrollPosition:Number =
             containerController.horizontalScrollPosition;
+        if (newHorizontalScrollPosition != oldHorizontalScrollPosition)
+        {
+            _horizontalScrollPosition = newHorizontalScrollPosition;
+            
+            dispatchPropertyChangeEvent("horizontalScrollPosition",
+                oldHorizontalScrollPosition, newHorizontalScrollPosition);
+        }
+        
+        var oldVerticalScrollPosition:Number = _verticalScrollPosition;
         var newVerticalScrollPosition:Number =
             containerController.verticalScrollPosition;
-
-        if (newHorizontalScrollPosition != _horizontalScrollPosition ||
-            newVerticalScrollPosition != _verticalScrollPosition)
-        {
-            _horizontalScrollPosition = newHorizontalScrollPosition;
+        if (newVerticalScrollPosition != oldVerticalScrollPosition)
+        {
             _verticalScrollPosition = newVerticalScrollPosition;
-
-            dispatchEvent(new Event("scrollPositionChanged"))
+            
+            dispatchPropertyChangeEvent("verticalScrollPosition",
+                oldVerticalScrollPosition, newVerticalScrollPosition);
         }
     }
 

     *  A value of null does not get applied.
     *  If you don't specify a range, the selected range is used.
     *  For example, calling
     *  <code>setAttributes({ fontSize: 12, color: 0xFF0000 })</code>
     *  will set the fontSize and color of the selection.
     *  The supported attributes are those in the
     *  ICharacterFormat and IParagraphFormat interfaces.
     */
    public function setAttributes(attributes:Object):void
    {
        var containerFormat:ContainerFormat;
        var paragraphFormat:ParagraphFormat;

        var containerController:IContainerController =
            textFlow.flowComposer.getControllerAt(0);

        var oldContentWidth:Number = _contentWidth;
        var newContentWidth:Number = containerController.contentWidth;
        if (newContentWidth != oldContentWidth)
        {
            _contentWidth = newContentWidth;
            
            dispatchPropertyChangeEvent(
                "contentWidth", oldContentWidth, newContentWidth);
        }
        
        var oldContentHeight:Number = _contentHeight;
        var newContentHeight:Number = containerController.contentHeight;
        if (newContentHeight != oldContentHeight)
        {
            _contentHeight = newContentHeight;
            
            dispatchPropertyChangeEvent(
                "contentHeight", oldContentHeight, newContentHeight);
        }
    }
    
