diff --git a/reference_option_limit.module b/reference_option_limit.module
index fd6d9c7..0089d9a 100644
--- a/reference_option_limit.module
+++ b/reference_option_limit.module
@@ -269,7 +269,7 @@ function reference_option_limit_form_alter(&$form, &$form_state, $form_id) {
       $field_instance_option_limited = field_info_instance($settings['entity_type'], $field_name_option_limited, $settings['entity_bundle']);
 
       // Add a wrapper div to the limited field for the ajax to work on.
-      $settings['ajax_wrapper'] = 'reference-options-limit-' . str_replace('_', '-', $field_name_option_limited);
+      $settings['ajax_wrapper'] = $form[$field_name_option_limited]['#reference_option_limit_id'] = 'reference-options-limit-' . str_replace('_', '-', $field_name_option_limited);
       $form[$field_name_option_limited]['#prefix'] = '<div id="' . $settings['ajax_wrapper'] . '">';
       $form[$field_name_option_limited]['#suffix'] = '</div>';
       //dsm($settings, 'settings');
@@ -449,21 +449,22 @@ function reference_option_limit_js($form, $form_state) {
   $field_name_triggering = $form_state['triggering_element']['#parents'][0];
 
   // Find which option limited field we should be returning the element for.
-  // @todo: I have no idea how to make this work if the triggering field affects
-  // more than one option limited field!
-  foreach ($form_state['reference_option_limit'] as $settings) {
-    if (isset($settings['fields_match'][$field_name_triggering])) {
-      $field_name_dependent = $settings['field'];
-    }
-  }
+  $return = array(
+    '#type' => 'ajax',
+    '#commands' => array(),
+  );
 
+  $message_html = '';
   if ($messages = theme('status_messages')) {
-    $form[$field_name_dependent]['messages'] = array(
-      '#markup' => '<div class="views-messages">' . $messages . '</div>',
-    );
+    $message_html = '<div class="views-messages">' . $messages . '</div>';
   }
-
-  return $form[$field_name_dependent];
+  foreach ($form_state['reference_option_limit'] as $settings) {
+    if (!empty($settings['fields_match'][$field_name_triggering])) {
+      $return['#commands'][] = ajax_command_replace('#' . $form[$settings['field']]['#reference_option_limit_id'], $message_html . render($form[$settings['field']]));
+      $message_html = '';
+    }
+  }
+  return $return;
 }
 
 /**
