diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index b3ea79a..4c1d698 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -101,6 +101,7 @@
 import com.android.settings.inputmethod.SpellCheckersSettings;
 import com.android.settings.inputmethod.UserDictionaryList;
 import com.android.settings.location.LocationSettings;
+import com.android.settings.net.DataUsageMeteredSettings;
 import com.android.settings.nfc.AndroidBeam;
 import com.android.settings.nfc.PaymentSettings;
 import com.android.settings.print.PrintJobSettingsFragment;
@@ -350,64 +351,64 @@
      */
     private static IndexableRef[] INDEXABLE_REFS = new IndexableRef[] {
             new IndexableRef(1, NO_DATA_RES_ID,
-                    "com.android.settings.wifi.WifiSettings",
+                    WifiSettings.class.getName(),
                     R.drawable.ic_settings_wireless),
             new IndexableRef(2, R.xml.bluetooth_settings,
-                    "com.android.settings.bluetooth.BluetoothSettings",
+                    BluetoothSettings.class.getName(),
                     R.drawable.ic_settings_bluetooth2),
             new IndexableRef(3, R.xml.data_usage_metered_prefs,
-                    "com.android.settings.net.DataUsageMeteredSettings",
+                    DataUsageMeteredSettings.class.getName(),
                     R.drawable.ic_settings_data_usage),
             new IndexableRef(4, R.xml.wireless_settings,
-                    "com.android.settings.WirelessSettings",
+                    WirelessSettings.class.getName(),
                     R.drawable.empty_icon),
             new IndexableRef(5, R.xml.home_selection,
-                    "com.android.settings.HomeSettings",
+                    HomeSettings.class.getName(),
                     R.drawable.ic_settings_home),
             new IndexableRef(6, R.xml.sound_settings,
-                    "com.android.settings.SoundSettings",
+                    SoundSettings.class.getName(),
                     R.drawable.ic_settings_sound),
             new IndexableRef(7, R.xml.display_settings,
-                    "com.android.settings.DisplaySettings",
+                    DisplaySettings.class.getName(),
                     R.drawable.ic_settings_display),
             new IndexableRef(7, NO_DATA_RES_ID,
-                    "com.android.settings.WallpaperTypeSettings",
+                    WallpaperTypeSettings.class.getName(),
                     R.drawable.ic_settings_display),
             new IndexableRef(8, R.xml.device_info_memory,
-                    "com.android.settings.deviceinfo.Memory",
+                    Memory.class.getName(),
                     R.drawable.ic_settings_storage),
             new IndexableRef(9, R.xml.power_usage_summary,
-                    "com.android.settings.fuelgauge.PowerUsageSummary",
+                    PowerUsageSummary.class.getName(),
                     R.drawable.ic_settings_battery),
             new IndexableRef(10, R.xml.user_settings,
-                    "com.android.settings.users.UserSettings",
+                    UserSettings.class.getName(),
                     R.drawable.ic_settings_multiuser),
             new IndexableRef(11, R.xml.location_settings,
-                    "com.android.settings.location.LocationSettings",
+                    LocationSettings.class.getName(),
                     R.drawable.ic_settings_location),
             new IndexableRef(12, R.xml.security_settings,
-                    "com.android.settings.SecuritySettings",
+                    SecuritySettings.class.getName(),
                     R.drawable.ic_settings_security),
             new IndexableRef(13, R.xml.language_settings,
-                    "com.android.settings.inputmethod.InputMethodAndLanguageSettings",
+                    InputMethodAndLanguageSettings.class.getName(),
                     R.drawable.ic_settings_language),
             new IndexableRef(14, R.xml.privacy_settings,
-                    "com.android.settings.PrivacySettings",
+                    PrivacySettings.class.getName(),
                     R.drawable.ic_settings_backup),
             new IndexableRef(15, R.xml.date_time_prefs,
-                    "com.android.settings.DateTimeSettings",
+                    DateTimeSettings.class.getName(),
                     R.drawable.ic_settings_date_time),
             new IndexableRef(16, R.xml.accessibility_settings,
-                    "com.android.settings.accessibility.AccessibilitySettings",
+                    AccessibilitySettings.class.getName(),
                     R.drawable.ic_settings_accessibility),
             new IndexableRef(17, R.xml.print_settings,
-                    "com.android.settings.print.PrintSettingsFragment",
+                    PrintSettingsFragment.class.getName(),
                     com.android.internal.R.drawable.ic_print),
             new IndexableRef(18, R.xml.development_prefs,
-                    "com.android.settings.DevelopmentSettings",
+                    DevelopmentSettings.class.getName(),
                     R.drawable.ic_settings_development),
             new IndexableRef(19, R.xml.device_info_settings,
-                    "com.android.settings.DeviceInfoSettings",
+                    DeviceInfoSettings.class.getName(),
                     R.drawable.ic_settings_about),
     };
 
