Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.266
diff -u -r1.266 form.inc
--- includes/form.inc	6 Feb 2008 19:38:26 -0000	1.266
+++ includes/form.inc	10 Feb 2008 06:26:01 -0000
@@ -1749,7 +1749,13 @@
       case 'submit':
       case 'button':
       case 'image_button':
-        $element['#ahah']['event'] = 'click';
+        // Use the mousedown instead of the click event because form
+        // submission via pressing the enter key triggers a click event on
+        // submit inputs, inappropriately triggering AHAH behaviors.
+        $element['#ahah']['event'] = 'mousedown';
+        // Attach an additional event handler so that AHAH behaviours
+        // can be triggered still via keyboard input.
+        $element['#ahah']['keypress'] = TRUE;
         break;
       case 'password':
       case 'textfield':
@@ -1773,6 +1779,7 @@
     $ahah_binding = array(
       'url'      => url($element['#ahah']['path']),
       'event'    => $element['#ahah']['event'],
+      'keypress' => empty($element['#ahah']['keypress']) ? NULL : $element['#ahah']['keypress'],
       'wrapper'  => empty($element['#ahah']['wrapper']) ? NULL : $element['#ahah']['wrapper'],
       'selector' => empty($element['#ahah']['selector']) ? '#'. $element['#id'] : $element['#ahah']['selector'],
       'effect'   => empty($element['#ahah']['effect']) ? 'none' : $element['#ahah']['effect'],
Index: misc/ahah.js
===================================================================
RCS file: /cvs/drupal/drupal/misc/ahah.js,v
retrieving revision 1.7
diff -u -r1.7 ahah.js
--- misc/ahah.js	4 Jan 2008 11:53:21 -0000	1.7
+++ misc/ahah.js	10 Feb 2008 06:33:02 -0000
@@ -38,6 +38,7 @@
   this.element = element_settings.element;
   this.selector = element_settings.selector;
   this.event = element_settings.event;
+  this.keypress = element_settings.keypress;
   this.url = element_settings.url;
   this.wrapper = '#'+ element_settings.wrapper;
   this.effect = element_settings.effect;
@@ -98,6 +99,18 @@
     $(element_settings.element).parents('form').ajaxSubmit(options);
     return false;
   });
+  // If necessary, enable keyboard submission so that AHAH behaviors
+  // can be triggered through keyboard input as well as e.g. a mousedown
+  // action.
+  if (element_settings.keypress) {
+    $(element_settings.element).keypress(function(event) {
+      // Detect enter key.
+      if (event.keyCode == 13) {
+        $(element_settings.element).trigger(element_settings.event);
+        return false;
+      }
+    });
+  }
 };
 
 /**
