diff --git a/src/com/android/camera/SettingsActivity.java b/src/com/android/camera/SettingsActivity.java
index f38e27daee74b68ff220e40e32788224b2318528..5deaa2c42c769042383b15af5144a33c4ad82d11 100755
--- a/src/com/android/camera/SettingsActivity.java
+++ b/src/com/android/camera/SettingsActivity.java
@@ -348,9 +348,11 @@ public class SettingsActivity extends PreferenceActivity {
         String[] categories = {"photo", "video", "general", "developer"};
         Set<String> set = mSettingsManager.getFilteredKeys();
         if (!mDeveloperMenuEnabled) {
-            set.add(SettingsManager.KEY_MONO_PREVIEW);
-            set.add(SettingsManager.KEY_MONO_ONLY);
-            set.add(SettingsManager.KEY_CLEARSIGHT);
+            if (set != null) {
+                set.add(SettingsManager.KEY_MONO_PREVIEW);
+                set.add(SettingsManager.KEY_MONO_ONLY);
+                set.add(SettingsManager.KEY_CLEARSIGHT);
+            }
 
             PreferenceGroup developer = (PreferenceGroup) findPreference("developer");
             //Before restore settings,if current is not developer mode,the developer
@@ -364,7 +366,7 @@ public class SettingsActivity extends PreferenceActivity {
 
         CharSequence[] entries = mSettingsManager.getEntries(SettingsManager.KEY_SCENE_MODE);
         List<CharSequence> list = Arrays.asList(entries);
-        if (mDeveloperMenuEnabled && !list.contains("HDR")){
+        if (mDeveloperMenuEnabled && list != null && !list.contains("HDR")){
             Preference p = findPreference("pref_camera2_hdr_key");
             if (p != null){
                 PreferenceGroup developer = (PreferenceGroup)findPreference("developer");
@@ -372,13 +374,15 @@ public class SettingsActivity extends PreferenceActivity {
             }
         }
 
-        for (String key : set) {
-            Preference p = findPreference(key);
-            if (p == null) continue;
+        if (set != null) {
+            for (String key : set) {
+                Preference p = findPreference(key);
+                if (p == null) continue;
 
-            for (int i = 0; i < categories.length; i++) {
-                PreferenceGroup group = (PreferenceGroup) findPreference(categories[i]);
-                if (group.removePreference(p)) break;
+                for (int i = 0; i < categories.length; i++) {
+                    PreferenceGroup group = (PreferenceGroup) findPreference(categories[i]);
+                    if (group.removePreference(p)) break;
+                }
             }
         }
     }
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index ef7d02c70f30ca733709a8816047ef11c50ea674..e0372153a58d7814d67b584586b091d2b33f4786 100755
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -591,9 +591,11 @@ public class SettingsManager implements ListMenu.SettingsListener {
     }
 
     public CharSequence[] getEntries(String key) {
-        ListPreference pref = mPreferenceGroup.findPreference(key);
-        if (pref != null) {
-            return pref.getEntries();
+        if ( mPreferenceGroup != null ) {
+            ListPreference pref = mPreferenceGroup.findPreference(key);
+            if (pref != null) {
+                return pref.getEntries();
+            }
         }
         return null;
     }