                         else if (viewport.horizontalScrollPosition + width < eltBounds.right + focusThickness)
                             viewport.horizontalScrollPosition = eltBounds.right + focusThickness - width;
                     }
-                    snapContentScrollPosition();
+                
+                    // Do not snap vertically when increasing the 
+                    // verticalScrollPosition for the soft keyboard
+                    snapContentScrollPosition(true, !adjustForSoftKeyboard);
                 }
                 
                 if (doValidateNow && viewport is UIComponent)

            }
            
            // Scroll the element into view
            
            var delta:Point = layout.getScrollPositionDeltaToAnyElement(element, elementLocalBounds, entireElementVisible);
            
            if (delta)
            {

import mx.events.PropertyChangeEvent;
import mx.events.TouchInteractionEvent;
import mx.managers.IFocusManagerComponent;
import mx.styles.IStyleClient;

import spark.components.supportClasses.GroupBase;
import spark.components.supportClasses.ScrollerLayout;
import spark.components.supportClasses.SkinnableComponent;
