diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index b9eec9c..cfb8dd4 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -25,6 +25,7 @@
 import android.os.Message;
 import android.preference.PreferenceManager;
 import android.provider.Browser;
+import android.provider.Settings;
 import android.util.DisplayMetrics;
 import android.webkit.CookieManager;
 import android.webkit.GeolocationPermissions;
@@ -802,8 +803,16 @@
         return context.getResources().getString(R.string.pref_data_preload_value_always);
     }
 
-    private String getDefaultPreloadSetting() {
-        return mContext.getResources().getString(R.string.pref_data_preload_default_value);
+    private static final String DEAULT_PRELOAD_SECURE_SETTING_KEY =
+            "browser_default_preload_setting";
+
+    public String getDefaultPreloadSetting() {
+        String preload = Settings.Secure.getString(mContext.getContentResolver(),
+                DEAULT_PRELOAD_SECURE_SETTING_KEY);
+        if (preload == null) {
+            preload = mContext.getResources().getString(R.string.pref_data_preload_default_value);
+        }
+        return preload;
     }
 
     public String getPreloadEnabled() {
diff --git a/src/com/android/browser/preferences/BandwidthPreferencesFragment.java b/src/com/android/browser/preferences/BandwidthPreferencesFragment.java
index 18b9fa4..2c147cc 100644
--- a/src/com/android/browser/preferences/BandwidthPreferencesFragment.java
+++ b/src/com/android/browser/preferences/BandwidthPreferencesFragment.java
@@ -16,12 +16,11 @@
 
 package com.android.browser.preferences;
 
-import android.content.res.Resources;
 import android.os.Bundle;
-import android.preference.Preference;
+import android.preference.ListPreference;
 import android.preference.PreferenceFragment;
-import android.util.Log;
 
+import com.android.browser.BrowserSettings;
 import com.android.browser.PreferenceKeys;
 import com.android.browser.R;
 
@@ -36,4 +35,18 @@
         addPreferencesFromResource(R.xml.bandwidth_preferences);
     }
 
+    @Override
+    public void onResume() {
+        super.onResume();
+        if (!getPreferenceScreen().getSharedPreferences()
+                .contains(PreferenceKeys.PREF_DATA_PRELOAD)) {
+            // set default value for preload setting
+            ListPreference preload = (ListPreference) getPreferenceScreen().findPreference(
+                    PreferenceKeys.PREF_DATA_PRELOAD);
+            if (preload != null) {
+                preload.setValue(BrowserSettings.getInstance().getDefaultPreloadSetting());
+            }
+        }
+    }
+
 }
