Index: includes/ajax.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/ajax.inc,v
retrieving revision 1.37
diff -u -p -r1.37 ajax.inc
--- includes/ajax.inc	21 Oct 2010 19:31:39 -0000	1.37
+++ includes/ajax.inc	6 Nov 2010 20:09:44 -0000
@@ -613,15 +613,10 @@ function ajax_pre_render_element($elemen
     $settings += array(
       'path' => 'system/ajax',
       'options' => array(),
-      'selector' => '#' . $element['#id'],
-      'effect' => 'none',
-      'speed' => 'none',
-      'method' => 'replaceWith',
-      'progress' => array('type' => 'throbber'),
     );
 
     // @todo Legacy support. Remove in Drupal 8.
-    if ($settings['method'] == 'replace') {
+    if (isset($settings['method']) && $settings['method'] == 'replace') {
       $settings['method'] = 'replaceWith';
     }
 
@@ -659,7 +654,7 @@ function ajax_pre_render_element($elemen
     }
 
     // Convert a simple #ajax['progress'] string into an array.
-    if (is_string($settings['progress'])) {
+    if (isset($settings['progress']) && is_string($settings['progress'])) {
       $settings['progress'] = array('type' => $settings['progress']);
     }
     // Change progress path to a full URL.
@@ -668,7 +663,7 @@ function ajax_pre_render_element($elemen
       unset($settings['progress']['path']);
     }
     // Add progress.js if we're doing a bar display.
-    if ($settings['progress']['type'] == 'bar') {
+    if (isset($settings['progress']['type']) && $settings['progress']['type'] == 'bar') {
       $element['#attached']['js']['misc/progress.js'] = array('cache' => FALSE);
     }
 
Index: misc/ajax.js
===================================================================
RCS file: /cvs/drupal/drupal/misc/ajax.js,v
retrieving revision 1.27
diff -u -p -r1.27 ajax.js
--- misc/ajax.js	25 Oct 2010 00:23:47 -0000	1.27
+++ misc/ajax.js	6 Nov 2010 20:13:08 -0000
@@ -25,6 +25,9 @@ Drupal.behaviors.AJAX = {
       if (!$('#' + base + '.ajax-processed').length) {
         var element_settings = settings.ajax[base];
 
+        if (typeof element_settings.selector == 'undefined') {
+          element_settings.selector = '#' + base;
+        }
         $(element_settings.selector).each(function () {
           element_settings.element = this;
           Drupal.ajax[base] = new Drupal.ajax(base, this, element_settings);
@@ -98,11 +101,11 @@ Drupal.ajax = function (base, element, e
     keypress: true,
     selector: '#' + base,
     effect: 'none',
-    speed: 'slow',
+    speed: 'none',
     method: 'replaceWith',
     progress: {
-      type: 'bar',
-      message: 'Please wait...'
+      type: 'throbber',
+      message: Drupal.t('Please wait...')
     },
     submit: {
       'js': true
