diff --git a/core/modules/entity/entity.class.inc b/core/modules/entity/entity.class.inc
index 03a4aa0..c0357f4 100644
--- a/core/modules/entity/entity.class.inc
+++ b/core/modules/entity/entity.class.inc
@@ -76,21 +76,25 @@ interface EntityInterface {
   /**
    * Returns the language code associated with the entity.
    *
-   * The language code of the entity either refers to a language or to one of
-   * the system language constants, e.g. LANGUAGE_NOT_SPECIFIED,
-   * LANGUAGE_NOT_APPLICABLE or LANGUAGE_MULTIPLE.
+   * If the entity is not specific to a certain language, the language code of
+   * an entity is one of the system language constants, e.g.
+   * LANGUAGE_NOT_SPECIFIED, LANGUAGE_NOT_APPLICABLE or LANGUAGE_MULTIPLE.
+   * Otherwise, for language-specific entities the language code refers to
+   * the default language as returned by EntityInterface::language().
    *
    * @return
    *   A valid language code.
+   *
+   * @see EntityInterface::language()
    */
   public function languageCode();
 
   /**
-   * Returns the default language of the entity.
+   * Returns the default language of a language-specific entity.
    *
    * @return
-   *   The language object of the entity's default language, or FALSE if no
-   *   valid language is assigned.
+   *   The language object of the entity's default language, or FALSE if the
+   *   entity is not language-specific.
    *
    * @see EntityInterface::translations()
    * @see EntityInterface::languageCode()
@@ -392,12 +396,14 @@ class Entity implements EntityInterface {
   }
 
   /**
-   * Determines the language code to use for a field.
+   * Determines the language code to use for accessing a field value in a certain language.
    */
   protected function getFieldLangcode($field, $langcode = NULL) {
-    // Only apply the langcode if the entity is language specific, thus has a
-    // language assigned.
+    // Only apply the given langcode if the entity is language-specific.
+    // Otherwise translatable fields are handled as non-translatable fields.
     if (field_is_translatable($this->entityType, $field) && ($default_language = $this->language())) {
+      // For translatable fields the values in default language are stored using
+      // the language code of the default language.
       return isset($langcode) ? $langcode : $default_language->langcode;
     }
     else {
diff --git a/core/modules/entity/tests/entity.test b/core/modules/entity/tests/entity.test
index 703417b..57600a3 100644
--- a/core/modules/entity/tests/entity.test
+++ b/core/modules/entity/tests/entity.test
@@ -156,18 +156,21 @@ class EntityTranslationTestCase extends DrupalWebTestCase {
     $value = $entity->get($this->field_name);
     $this->assertEqual($value, array(0 => array('value' => 'default value')), 'Untranslated value retrieved.');
 
-    // Set the value in a certain language. As the entity is not translatable it
-    // should use the default language and so ignore the specified language.
+    // Set the value in a certain language. As the entity is not
+    // language-specific it should use the default language and so ignore the
+    // specified language.
     $entity->set($this->field_name, array(0 => array('value' => 'default value2')), $this->langcodes[1]);
     $value = $entity->get($this->field_name);
     $this->assertEqual($value, array(0 => array('value' => 'default value2')), 'Untranslated value updated.');
     $this->assertFalse($entity->translations(), 'No translations are available');
 
-    // Entity has no assigned language. Field should default to the language the entity was created in.
+    // Test getting a field value using the default language for a not
+    // language-specific entity.
     $value = $entity->get($this->field_name, $this->langcodes[1]);
     $this->assertEqual($value, array(0 => array('value' => 'default value2')), 'Untranslated value retrieved.');
 
-    // Now, assign a language to the entity and test translating it.
+    // Now, make the entity language-specific by assigning a language and test
+    // translating it.
     $entity->langcode = $this->langcodes[0];
     $entity->{$this->field_name} = array();
     $this->assertEqual($entity->language(), language_load($this->langcodes[0]), 'Entity language retrieved.');
