diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 8b4d06ba21ea998135a59ab991fa725334e05544..2a12d806ae66d33119de2f3af73327b1a1e2d983 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,6 +1,8 @@
 
 Drupal 7.36, xxxx-xx-xx (development version)
 -----------------------
+- Fixed missing language code in hook_field_attach_view_alter() when it is
+  invoked from field_view_field().
 - Stopped sending ETag and Last-Modified headers for uncached page requests,
   since they break caching for certain Varnish and Nginx configurations.
 - Changed the Simpletest module to allow PSR-4 test classes to be used in
diff --git a/modules/field/field.module b/modules/field/field.module
index a593e5111e9102faf6fd46f2433b3ffb8a50b0b0..e4039786eef7b2e3df0a487af3092245bebf391a 100644
--- a/modules/field/field.module
+++ b/modules/field/field.module
@@ -894,6 +894,7 @@ function field_view_field($entity_type, $entity, $field_name, $display = array()
       'entity' => $entity,
       'view_mode' => '_custom',
       'display' => $display,
+      'language' => $langcode,
     );
     drupal_alter('field_attach_view', $result, $context);
 
diff --git a/modules/field/tests/field.test b/modules/field/tests/field.test
index b279d6a8f4978031e74c3f0b2c82bb2ecde4ef5a..adf2413ba7b4935cd74bd63f657e533d866d64fb 100644
--- a/modules/field/tests/field.test
+++ b/modules/field/tests/field.test
@@ -2206,11 +2206,12 @@ class FieldDisplayAPITestCase extends FieldTestCase {
         'alter' => TRUE,
       ),
     );
-    $output = field_view_field('test_entity', $this->entity, $this->field_name, $display);
+    $output = field_view_field('test_entity', $this->entity, $this->field_name, $display, LANGUAGE_NONE);
     $this->drupalSetContent(drupal_render($output));
     $setting = $display['settings']['test_formatter_setting_multiple'];
     $this->assertNoText($this->label, 'Label was not displayed.');
     $this->assertText('field_test_field_attach_view_alter', 'Alter fired, display passed.');
+    $this->assertText('field language is ' . LANGUAGE_NONE, 'Language is placed onto the context.');
     $array = array();
     foreach ($this->values as $delta => $value) {
       $array[] = $delta . ':' . $value['value'];
diff --git a/modules/field/tests/field_test.module b/modules/field/tests/field_test.module
index 9daa2c305c9bbfc746bd4fbb38cf0f48307478b5..7e9bba0d8bf2bb26efb48c8b9ff17a83fc51d616 100644
--- a/modules/field/tests/field_test.module
+++ b/modules/field/tests/field_test.module
@@ -220,6 +220,10 @@ function field_test_field_attach_view_alter(&$output, $context) {
   if (!empty($context['display']['settings']['alter'])) {
     $output['test_field'][] = array('#markup' => 'field_test_field_attach_view_alter');
   }
+
+  if (isset($output['test_field'])) {
+    $output['test_field'][] = array('#markup' => 'field language is ' . $context['language']);
+  }
 }
 
 /**