diff --git a/src/com/android/settings/TextToSpeechSettings.java b/src/com/android/settings/TextToSpeechSettings.java
index 1f81c99..f7945d8 100644
--- a/src/com/android/settings/TextToSpeechSettings.java
+++ b/src/com/android/settings/TextToSpeechSettings.java
@@ -130,7 +130,7 @@
         mDefaultRatePref = (ListPreference) findPreference(KEY_TTS_DEFAULT_RATE);
         mDefaultLocPref = (ListPreference) findPreference(KEY_TTS_DEFAULT_LANG);
 
-        mEngineSettings = (Preference) findPreference(KEY_TTS_ENGINE_SETTINGS);
+        mEngineSettings = findPreference(KEY_TTS_ENGINE_SETTINGS);
         mEngineSettings.setEnabled(false);
 
         mTts = new TextToSpeech(getActivity().getApplicationContext(), this);
@@ -181,12 +181,11 @@
         mEngineSettings.setTitle(getResources().getString(R.string.tts_engine_settings_title,
                 engine.label));
 
-        if (engineHasSettings(engineName)) {
+        final Intent settingsIntent = mEnginesHelper.getSettingsIntent(engineName);
+        if (settingsIntent != null) {
             mEngineSettings.setOnPreferenceClickListener(new OnPreferenceClickListener() {
                 public boolean onPreferenceClick(Preference preference) {
-                    Intent i = new Intent();
-                    i.setClassName(engineName, engineName + ".EngineSettings");
-                    startActivity(i);
+                    startActivity(settingsIntent);
                     return true;
                 }
             });
@@ -197,16 +196,6 @@
 
     }
 
-    private boolean engineHasSettings(String enginePackageName) {
-        PackageManager pm = getPackageManager();
-        Intent i = new Intent();
-        i.setClassName(enginePackageName, enginePackageName + ".EngineSettings");
-        if (pm.resolveActivity(i, PackageManager.MATCH_DEFAULT_ONLY) != null){
-            return true;
-        }
-        return false;
-    }
-
     private void initDefaultSettings() {
         ContentResolver resolver = getContentResolver();
 
