diff --git a/modules/field/views_handler_field_field.inc b/modules/field/views_handler_field_field.inc
index 29c008a..ecc3dd0 100644
--- a/modules/field/views_handler_field_field.inc
+++ b/modules/field/views_handler_field_field.inc
@@ -648,7 +648,7 @@ class views_handler_field_field extends views_handler_field {
       $default_language = language_default('language');
       $language = str_replace(array('***CURRENT_LANGUAGE***', '***DEFAULT_LANGUAGE***'),
                               array($language_content->language, $default_language),
-                              $this->query->options['field_language']);
+                              $this->display_handler->options['field_language']);
 
       return $language;
     }
diff --git a/plugins/views_plugin_display.inc b/plugins/views_plugin_display.inc
index 7aea091..1f2b8ce 100644
--- a/plugins/views_plugin_display.inc
+++ b/plugins/views_plugin_display.inc
@@ -130,6 +130,12 @@ class views_plugin_display extends views_plugin {
       // Clear the values
       $this->set_option('distinct', NULL);
     }
+
+    // Convert field language settings.
+    $query_options = $this->get_option('query');
+    if (isset($query_options['field_language'])) {
+      $this->set_option('field_language', $query_options['field_language']);
+    }
   }
 
   function destroy() {
@@ -430,6 +436,9 @@ class views_plugin_display extends views_plugin {
         'default' => FALSE,
         'bool' => TRUE,
       ),
+      'field_language' => array(
+        'default' => '***CURRENT_LANGUAGE***',
+      ),
 
       // These types are all plugins that can have individual settings
       // and therefore need special handling.
@@ -1051,6 +1060,22 @@ class views_plugin_display extends views_plugin {
       'desc' => t('Allow to set some advanced settings for the query plugin'),
     );
 
+    $languages = array(
+      '***CURRENT_LANGUAGE***' => t("Current user's language"),
+      '***DEFAULT_LANGUAGE***' => t("Default site language"),
+      LANGUAGE_NONE => t('No language')
+    );
+    if (module_exists('locale')) {
+      $languages = array_merge($languages, locale_language_list());
+    }
+    $field_language = array();
+    $options['field_language'] = array(
+      'category' => 'other',
+      'title' => t('Field Language'),
+      'value' => $languages[$this->get_option('field_language')],
+      'desc' => t('All fields which support translations will be displayed in the selected language.'),
+    );
+
     $access_plugin = $this->get_plugin('access');
     if (!$access_plugin) {
       // default to the no access control plugin.
@@ -1409,6 +1434,42 @@ class views_plugin_display extends views_plugin {
           $this->view->query->options_form($form['query']['options'], $form_state);
         }
         break;
+      case 'field_language':
+        $form['#title'] .= t('Field Language');
+        $entities = entity_get_info();
+        $entity_tables = array();
+        $has_translation_handlers = FALSE;
+        foreach ($entities as $type => $entity_info) {
+          $entity_tables[] = $entity_info['base table'];
+
+          if (!empty($entity_info['translation'])) {
+            $has_translation_handlers = TRUE;
+          }
+        }
+
+        // Doesn't make sense to show a field setting here if we aren't querying
+        // an entity base table. Also, we make sure that there's at least one
+        // entity type with a translation handler attached.
+        if (in_array($this->view->base_table, $entity_tables) && $has_translation_handlers) {
+          $languages = array(
+            '***CURRENT_LANGUAGE***' => t("Current user's language"),
+            '***DEFAULT_LANGUAGE***' => t("Default site language"),
+            LANGUAGE_NONE => t('No language')
+          );
+          $languages = array_merge($languages, locale_language_list());
+
+          $form['field_language'] = array(
+            '#type' => 'select',
+            '#title' => t('Field Language'),
+            '#description' => t('All fields which support translations will be displayed in the selected language.'),
+            '#options' => $languages,
+            '#default_value' => $this->get_option('field_language'),
+          );
+        }
+        else {
+          $form['field_language']['#markup'] = t("You don't have translatable entity types.");
+        }
+        break;
       case 'style_plugin':
         $form['#title'] .= t('How should this view be styled');
         $form['#help_topic'] = 'style';
@@ -2004,6 +2065,7 @@ class views_plugin_display extends views_plugin {
       case 'css_class':
       case 'link_display':
       case 'display_comment':
+      case 'field_language':
         $this->set_option($section, $form_state['values'][$section]);
         break;
       case 'enabled':
diff --git a/plugins/views_plugin_query_default.inc b/plugins/views_plugin_query_default.inc
index eeb40bd..c65e584 100644
--- a/plugins/views_plugin_query_default.inc
+++ b/plugins/views_plugin_query_default.inc
@@ -176,9 +176,6 @@ class views_plugin_query_default extends views_plugin_query {
       'default' => FALSE,
       'bool' => TRUE,
     );
-    $options['field_language'] = array(
-      'default' => '***CURRENT_LANGUAGE***',
-    );
 
     return $options;
   }
@@ -206,37 +203,6 @@ class views_plugin_query_default extends views_plugin_query {
       '#description' => t('This will make the query attempt to connect to a slave server if available.  If no slave server is defined or available, it will fall back to the default server.'),
       '#default_value' => !empty($this->options['slave']),
     );
-
-    $entities = entity_get_info();
-    $entity_tables = array();
-    $has_translation_handlers = FALSE;
-    foreach ($entities as $type => $entity_info) {
-      $entity_tables[] = $entity_info['base table'];
-
-      if (!empty($entity_info['translation'])) {
-        $has_translation_handlers = TRUE;
-      }
-    }
-
-    // Doesn't make sense to show a field setting here if we aren't querying
-    // an entity base table. Also, we make sure that there's at least one
-    // entity type with a translation handler attached.
-    if (in_array($this->base_table, $entity_tables) && $has_translation_handlers) {
-      $languages = array(
-        '***CURRENT_LANGUAGE***' => t("Current user's language"),
-        '***DEFAULT_LANGUAGE***' => t("Default site language"),
-        LANGUAGE_NONE => t('No language')
-      );
-      $languages = array_merge($languages, locale_language_list());
-
-      $form['field_language'] = array(
-        '#type' => 'select',
-        '#title' => t('Field Language'),
-        '#description' => t('All fields which support translations will be displayed in the selected language.'),
-        '#options' => $languages,
-        '#default_value' => $this->options['field_language'],
-      );
-    }
   }
 
   // ----------------------------------------------------------------
