diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 3ba3182..959d2ec 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -876,4 +876,7 @@
         mNavigationBar.onVoiceResult(result);
     }
 
+    protected UiController getUiController() {
+        return mUiController;
+    }
 }
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index c548322..fe472c5 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -59,6 +59,20 @@
     private ActivityController mController = NullController.INSTANCE;
     private Handler mHandler = new Handler();
 
+    private UiController mUiController;
+    private Handler mHandlerEx = new Handler();
+    private Runnable runnable = new Runnable() {
+        @Override
+        public void run() {
+           if (mUiController != null) {
+               WebView current = mUiController.getCurrentWebView();
+               if (current != null) {
+                   current.postInvalidate();
+               }
+           }
+        }
+    };
+
     @Override
     public void onCreate(Bundle icicle) {
         if (LOGV_ENABLED) {
@@ -93,9 +107,13 @@
         boolean xlarge = isTablet(this);
         UI ui = null;
         if (xlarge) {
-            ui = new XLargeUi(this, controller);
+            XLargeUi tablet = new XLargeUi(this, controller);
+            ui = tablet;
+            mUiController = tablet.getUiController();
         } else {
-            ui = new PhoneUi(this, controller);
+            PhoneUi phone = new PhoneUi(this, controller);
+            ui = phone;
+            mUiController = phone.getUiController();
         }
         controller.setUi(ui);
         return controller;
@@ -202,6 +220,9 @@
     public void onConfigurationChanged(Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
         mController.onConfgurationChanged(newConfig);
+
+        //For avoiding bug CR520353 temporarily, delay 300ms to refresh WebView.
+        mHandlerEx.postDelayed(runnable, 300);
     }
 
     @Override
