diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 8aa94fc..892268c 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -3,6 +3,7 @@ References 7.x-2.x
 
 - Issue #1157530 by yched: node-specific code in references_potential_references_view().
 - Issue #1157746 by yched: 'match' option not working in views.
+- Issue #1149600 by yched: fix 'Undefined index error' in _[user|user]_reference_view_settings_validate().
 
 
 References 7.x-2.0-beta3
diff --git a/node_reference/node_reference.module b/node_reference/node_reference.module
index 46d1e13..0768ff3 100644
--- a/node_reference/node_reference.module
+++ b/node_reference/node_reference.module
@@ -102,14 +102,16 @@ function node_reference_field_settings_form($field, $instance, $has_data) {
       '#collapsible' => TRUE,
       '#collapsed' => empty($view_settings['view_name']),
       '#description' => $description,
-      // The value of the 'view_and_display' select below will need to be split
-      // into 'view_name' and 'view_display' in the final submitted values, so
-      // we massage the data at validate time (not ideal).
-      '#element_validate' => array('_node_reference_view_settings_validate'),
     );
 
     $views_options = references_get_views_options('node');
     if ($views_options) {
+      // The value of the 'view_and_display' select below will need to be split
+      // into 'view_name' and 'view_display' in the final submitted values, so
+      // we massage the data at validate time on the wrapping element (not
+      // ideal).
+      $form['view']['#element_validate'] = array('_node_reference_view_settings_validate');
+
       $views_options = array('' => '<' . t('none') . '>') + $views_options;
       $default = empty($view_settings['view_name']) ? '' : $view_settings['view_name'] . ':' .$view_settings['display_name'];
       $form['view']['view_and_display'] = array(
@@ -141,7 +143,7 @@ function node_reference_field_settings_form($field, $instance, $has_data) {
 }
 
 /**
- * Validate callback for the 'view settings' fielset.
+ * Validate callback for the 'view settings' fieldset.
  *
  * Puts back the various form values in the expected shape.
  */
diff --git a/user_reference/user_reference.module b/user_reference/user_reference.module
index 9340231..381d155 100644
--- a/user_reference/user_reference.module
+++ b/user_reference/user_reference.module
@@ -110,14 +110,16 @@ function user_reference_field_settings_form($field, $instance, $has_data) {
       '#collapsible' => TRUE,
       '#collapsed' => empty($view_settings['view_name']),
       '#description' => $description,
-      // The value of the 'view_and_display' select below will need to be split
-      // into 'view_name' and 'view_display' in the final submitted values, so
-      // we massage the data at validate time (not ideal).
-      '#element_validate' => array('_user_reference_view_settings_validate'),
     );
 
     $views_options = references_get_views_options('user');
     if ($views_options) {
+      // The value of the 'view_and_display' select below will need to be split
+      // into 'view_name' and 'view_display' in the final submitted values, so
+      // we massage the data at validate time on the wrapping element (not
+      // ideal).
+      $form['view']['#element_validate'] = array('_user_reference_view_settings_validate');
+
       $views_options = array('' => '<' . t('none') . '>') + $views_options;
       $default = empty($view_settings['view_name']) ? '' : $view_settings['view_name'] . ':' .$view_settings['display_name'];
       $form['view']['view_and_display'] = array(
@@ -149,7 +151,7 @@ function user_reference_field_settings_form($field, $instance, $has_data) {
 }
 
 /**
- * Validate callback for the 'view settings' fielset.
+ * Validate callback for the 'view settings' fieldset.
  *
  * Puts back the various form values in the expected shape.
  */
