diff --git a/modules/field/views_handler_field_field.inc b/modules/field/views_handler_field_field.inc
index b11e99e..bdf7cdc 100644
--- a/modules/field/views_handler_field_field.inc
+++ b/modules/field/views_handler_field_field.inc
@@ -644,7 +644,7 @@ class views_handler_field_field extends views_handler_field {
     $entity = clone $values->_field_data[$this->field_alias]['entity'];
 
     $entity_type = $values->_field_data[$this->field_alias]['entity_type'];
-    $langcode = $this->field_language($entity_type);
+    $langcode = $this->field_language($entity_type, $entity);
     // If we are grouping, copy our group fields into the cloned entity.
     // It's possible this will cause some weirdness, but there's only
     // so much we can hope to do.
@@ -770,7 +770,7 @@ class views_handler_field_field extends views_handler_field {
    * Return the language code of the language the field should be displayed in,
    * according to the settings.
    */
-  function field_language($entity_type) {
+  function field_language($entity_type, $entity) {
     global $language_content;
 
     if (field_is_translatable($entity_type, $this->field_info)) {
@@ -779,6 +779,14 @@ class views_handler_field_field extends views_handler_field {
                               array($language_content->language, $default_language),
                               $this->query->options['field_language']);
 
+      // Respect Field Language API's translation handler (e.g. for core default
+      // fallback language provided by locale.module)
+      // This makes sure that the field we want to render supports the language we want.
+      // For example if locale module is enabled, node entity has a translation handler,
+      // but the fields itself are still stored in LANGUAGE_NONE.
+      // field_language takes sure that if the $langcode key doesn't exist LANGUAGE_NONE is used.
+      $language = field_language($entity_type, $entity, $this->field_info['field_name'], $language);
+
       return $language;
     }
     else {
