diff --git a/modules/system/system.admin.inc b/modules/system/system.admin.inc
index 9e7d69d..9ba4270 100644
--- a/modules/system/system.admin.inc
+++ b/modules/system/system.admin.inc
@@ -566,7 +566,7 @@ function system_theme_settings($form, &$form_state, $key = '') {
       }
 
       // Call theme-specific settings.
-      $function = $theme . '_form_system_theme_settings_alter';
+      $function = $theme . '_settings';
       if (function_exists($function)) {
         $function($form, $form_state);
       }
diff --git a/modules/system/theme.api.php b/modules/system/theme.api.php
index 7fee81c..49df38b 100644
--- a/modules/system/theme.api.php
+++ b/modules/system/theme.api.php
@@ -77,12 +77,16 @@
  * Note that the base theme's form alterations will be run before any sub-theme
  * alterations.
  *
+ * hook_form_system_theme_settings_alter() can also modify the theme settings
+ * form but there is no guarantee that the alter hook will be invoked since it
+ * is called in a different context.
+ *
  * @param $form
  *   Nested array of form elements that comprise the form.
  * @param $form_state
  *   A keyed array containing the current state of the form.
  */
-function hook_form_system_theme_settings_alter(&$form, &$form_state) {
+function hook_settings(&$form, &$form_state) {
   // Add a checkbox to toggle the breadcrumb trail.
   $form['toggle_breadcrumb'] = array(
     '#type' => 'checkbox',
diff --git a/themes/garland/theme-settings.php b/themes/garland/theme-settings.php
index 2454341..8f78c19 100644
--- a/themes/garland/theme-settings.php
+++ b/themes/garland/theme-settings.php
@@ -13,7 +13,7 @@
  * @param $form_state
  *   The form state.
  */
-function garland_form_system_theme_settings_alter(&$form, &$form_state) {
+function garland_settings(&$form, &$form_state) {
 
   $form['garland_width'] = array(
     '#type' => 'radios',
