         {
             addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE, 
                 softKeyboardActivateHandler, false, 
+                EventPriority.DEFAULT, true);
+            addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE, 
+                softKeyboardActivateCaptureHandler, true, 
                 EventPriority.DEFAULT, true);
             addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, 
                 softKeyboardDeactivateHandler, false, 

    }
    
    /**
     *  @private
     *  Called when the soft keyboard is deactivated. Tells the top level 
     *  application to resize itself and fix the scroll position if necessary

    
    /**
     *  @private
     * 
     *  If we just received a softKeyboardActivate event in the capture phase,
     *  we will wait until the bubble phase to call ensureElementPositionIsVisible
     *  For now, store the caret bounds to be used. 
     */
    private function caretBoundsChangeHandler(event:CaretBoundsChangeEvent):void
    {
        if (event.isDefaultPrevented())
            return;
        
        event.preventDefault();

        if (captureNextCaretBoundsChange)
        {
            lastFocusedElementCaretBounds = event.newCaretBounds;
            captureNextCaretBoundsChange = false;
            return;
        }
        
        ensureElementPositionIsVisible(lastFocusedElement, event.newCaretBounds, false);
    }
}

