diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 17f1e54..0783c65 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1148,8 +1148,7 @@
             </intent-filter>
         </activity>
 
-        <!-- TODO: Test this once Settings stops crashing for this intent -->
-        <activity android:name=".quicklaunch.QuickLaunchSettings"
+        <activity android:name="Settings$QuickLaunchSettingsActivity"
                 android:label="@string/quick_launch_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -1158,8 +1157,10 @@
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.quicklaunch.QuickLaunchSettings" />
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
-                android:value="true" />
+                       android:value="true" />
         </activity>
 
         <activity android:name=".quicklaunch.BookmarkPicker" android:label="@string/quick_launch_title">
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 01149f3..f8f1ffb 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -93,6 +93,7 @@
     public static class NotificationSettingsActivity extends SettingsActivity { /* empty */ }
     public static class AppNotificationSettingsActivity extends SettingsActivity { /* empty */ }
     public static class OtherSoundSettingsActivity extends SettingsActivity { /* empty */ }
+    public static class QuickLaunchSettingsActivity extends SettingsActivity { /* empty */ }
 
     public static class TopLevelSettings extends SettingsActivity { /* empty */ }
 }
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 90e8fd4..76a7300 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -84,6 +84,7 @@
 import com.android.settings.fuelgauge.PowerUsageSummary;
 import com.android.settings.notification.AppNotificationSettings;
 import com.android.settings.notification.OtherSoundSettings;
+import com.android.settings.quicklaunch.QuickLaunchSettings;
 import com.android.settings.search.DynamicIndexableContentMonitor;
 import com.android.settings.search.Index;
 import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
@@ -283,7 +284,8 @@
             InstalledAppDetails.class.getName(),
             BatterySaverSettings.class.getName(),
             AppNotificationSettings.class.getName(),
-            OtherSoundSettings.class.getName()
+            OtherSoundSettings.class.getName(),
+            QuickLaunchSettings.class.getName()
     };
 
 
diff --git a/src/com/android/settings/quicklaunch/QuickLaunchSettings.java b/src/com/android/settings/quicklaunch/QuickLaunchSettings.java
index a7ddc07..1367018 100644
--- a/src/com/android/settings/quicklaunch/QuickLaunchSettings.java
+++ b/src/com/android/settings/quicklaunch/QuickLaunchSettings.java
@@ -103,7 +103,6 @@
         initShortcutPreferences();
         mBookmarksCursor = getActivity().getContentResolver().query(Bookmarks.CONTENT_URI,
                 sProjection, null, null, null);
-        getListView().setOnItemLongClickListener(this);
     }
 
     @Override
@@ -124,16 +123,21 @@
 
     @Override
     public void onStop() {
+        super.onStop();
         mBookmarksCursor.close();
     }
 
     @Override
     public void onActivityCreated(Bundle state) {
         super.onActivityCreated(state);
-        
-        // Restore the clear dialog's info
-        mClearDialogBookmarkTitle = state.getString(CLEAR_DIALOG_BOOKMARK_TITLE);
-        mClearDialogShortcut = (char) state.getInt(CLEAR_DIALOG_SHORTCUT, 0);
+
+        getListView().setOnItemLongClickListener(this);
+
+        if (state != null) {
+            // Restore the clear dialog's info
+            mClearDialogBookmarkTitle = state.getString(CLEAR_DIALOG_BOOKMARK_TITLE);
+            mClearDialogShortcut = (char) state.getInt(CLEAR_DIALOG_SHORTCUT, 0);
+        }
     }
 
     @Override
