diff --git a/entity_autocomplete.module b/entity_autocomplete.module
index 901b581..2996fd2 100644
--- a/entity_autocomplete.module
+++ b/entity_autocomplete.module
@@ -125,7 +125,7 @@ function entity_autocomplete_element_info() {
       '#autocomplete_path' => FALSE,
       '#entity_type' => 'node',
       '#bundles' => array(),
-      '#process' => array('entity_autocomplete_element_process'),
+      '#process' => array('entity_autocomplete_element_process', 'ajax_process_form'),
       '#element_validate' => array('entity_autocomplete_element_validate'),
       '#value_callback' => 'entity_autocomplete_element_value',
       '#theme' => 'textfield',
@@ -176,10 +176,19 @@ function entity_autocomplete_element_process($element, $form_state) {
     }
   }
 
-    // Function form_process_autocomplete() was added to core in v7.39.
-    if (function_exists('form_process_autocomplete')) {
-      $element = form_process_autocomplete($element);
-    }
+  // Function form_process_autocomplete() was added to core in v7.39.
+  if (function_exists('form_process_autocomplete')) {
+    $element = form_process_autocomplete($element);
+  }
+
+  // Keep compatible with AJAX.
+  if (isset($element['#ajax']) && !isset($element['#ajax']['event'])) {
+    // The ajax_pre_render_element() function does not recognize the
+    // 'entity_autocomplete' element, so is does not add the expected event
+    // that triggers the AJAX callback.
+    $element['#ajax']['event'] = 'blur';
+  }
+
   return $element;
 }
 
@@ -243,4 +252,4 @@ function entity_autocomplete_element_validate($element, &$form_state, $form) {
       form_error($element, t('The specified entity %value does not match requirements.', array('%value' => $element['#value'])));
     } 
   }
-}
\ No newline at end of file
+}
