diff --git includes/ajax.inc includes/ajax.inc
index 7ef41bc..371ebb2 100644
--- includes/ajax.inc
+++ includes/ajax.inc
@@ -587,12 +587,19 @@ function ajax_pre_render_element($element) {
         $element['#ajax']['event'] = 'blur';
         break;
 
-      case 'radio':
-      case 'checkbox':
       case 'select':
         $element['#ajax']['event'] = 'change';
         break;
 
+      // Note on 'change' versus 'click' events: Ideally we would fire an AJAX
+      // request for radios and checkboxes when they change, instead of every
+      // time they're clicked. Unfortunately, Internet Explorer doesn't fire
+      // change events correctly. For radio and checkbox elements, the change
+      // event fires only on blur (such as when the user clicks outside the form
+      // element). The workaround is to react on the click event instead of the
+      // change event. See http://www.quirksmode.org/dom/events/change.html#t04
+      case 'radio':
+      case 'checkbox':
       case 'link':
         $element['#ajax']['event'] = 'click';
         break;
