     /**
      *  @private
      */
-    private function touchInteractionStartingHandler(event:TouchInteractionEvent):void
-    {
-        // This implementation prevents the scroll from happening, which means
-        // the touch interaction will be interpreted by the text (ie selection).
-        if (selectable || editable)
-            event.preventDefault();
-    }
+    private function touchInteractionStartHandler(event:TouchInteractionEvent):void
+    {
+		// During a touch scroll we don't want the keyboard to activate. Add a
+		// "softKeyboardActivating" handler to cancel the event.
+        textDisplay.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING, 
+						softKeyboardActivatingHandler);
+    }
+	
+	/**
+	 *  @private
+	 */
+	private function touchInteractionEndHandler(event:TouchInteractionEvent):void
+	{
+		// Remove the soft keyboard activate cancelling handler.
+		textDisplay.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING, 
+						softKeyboardActivatingHandler);
+	}
+	
+	/**
+	 *  @private
+	 * 
+	 *  This handler is only added during touch scroll events. It prevents
+	 *  the onscreen keyboard from activating if a scroll occurred.
+	 */
+	private function softKeyboardActivatingHandler(event:SoftKeyboardEvent):void
+	{
+		event.preventDefault();
+	}
 }
 
 }

import flash.display.DisplayObject;
import flash.events.Event;
import flash.events.FocusEvent;
import flash.system.Capabilities;

import flashx.textLayout.elements.TextFlow;

     */
    private function addHandlers():void
    {
        addEventListener(TouchInteractionEvent.TOUCH_INTERACTION_START, touchInteractionStartHandler);
		addEventListener(TouchInteractionEvent.TOUCH_INTERACTION_END, touchInteractionEndHandler);
    }
    
    /**
