         
         if (keyboardRect.width > 0 && keyboardRect.height > 0)
         {
-            if (lastFocusedElement && !isSoftKeyboardActive && ensureElementIsVisibleForSoftKeyboard)
+            if (lastFocusedElement && ensureElementIsVisibleForSoftKeyboard &&
+                (keyboardRect.height != oldSoftKeyboardHeight ||
+                 keyboardRect.width != oldSoftKeyboardWidth))
                 ensureElementIsVisible(lastFocusedElement);
             
-            isSoftKeyboardActive = true;
+            oldSoftKeyboardHeight = keyboardRect.height;
+            oldSoftKeyboardWidth = keyboardRect.width;
+            
         }
     }
     

    {
        // Adjust the scroll position after the application's size is restored. 
        adjustScrollPositionAfterSoftKeyboardDeactivate();
        isSoftKeyboardActive = false;
    }
    
    /**

    
    /**
     *  @private 
     */
    private var oldSoftKeyboardHeight:Number = NaN;
    
    /**
     *  @private 
     */
    private var oldSoftKeyboardWidth:Number = NaN;
    
    //--------------------------------------------------------------------------
    //
