diff --git a/core/lib/Drupal/Core/Entity/EntityFormController.php b/core/lib/Drupal/Core/Entity/EntityFormController.php
index 88968e2..07d1dc1 100644
--- a/core/lib/Drupal/Core/Entity/EntityFormController.php
+++ b/core/lib/Drupal/Core/Entity/EntityFormController.php
@@ -148,7 +148,7 @@ protected function init(array &$form_state) {
 
     // Ensure we act on the translation object corresponding to the current form
     // language.
-    $translation = $this->entity->getTranslation($this->getFormLangcode($form_state));
+    $translation = $this->getTranslatedEntity($form_state);
     // Ensure that the entity object is a BC entity if the original one is.
     $this->entity = $this->entity instanceof EntityBCDecorator ? $translation->getBCEntity() : $translation;
 
@@ -494,11 +494,21 @@ public function buildEntity(array $form, array &$form_state) {
    * Implements \Drupal\Core\Entity\EntityFormControllerInterface::getEntity().
    */
   public function getEntity() {
-    // TODO
     return $this->entity;
   }
 
   /**
+   * Returns the translation object corresponding to the form language.
+   *
+   * @param array $form_state
+   *   A keyed array containing the current state of the form.
+   */
+  protected function getTranslatedEntity(array $form_state) {
+    $langcode = $this->getFormLangcode($form_state);
+    return $this->entity->getTranslation($langcode);
+  }
+
+  /**
    * Implements \Drupal\Core\Entity\EntityFormControllerInterface::setEntity().
    */
   public function setEntity(EntityInterface $entity) {
@@ -526,7 +536,7 @@ protected function prepareInvokeAll($hook, array &$form_state) {
       if (function_exists($function)) {
         // Ensure we pass an updated translation object and form display at
         // each invocation, since they depend on form state which is alterable.
-        $args = array($this->getEntity(), $this->getFormDisplay($form_state), $this->operation, &$form_state);
+        $args = array($this->getTranslatedEntity($form_state), $this->getFormDisplay($form_state), $this->operation, &$form_state);
         call_user_func_array($function, $args);
       }
     }
