diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 8d62ec0..faed4eb 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,6 +1,8 @@
 
 Entity Translation 7.x-1.x, xxxx-xx-xx
 --------------------------------------
+#2073231 by plach: Rename entity_translation_form_language() to
+  entity_translation_get_existing_language().
 #2072865 by douggreen: Fixed Only replace 'delete' button with
   'delete translation', don't add one that doesn't exist.
 #1865244 by plach | bojanz, agoradesign, ciss, interdruper, joel_osc: Added
diff --git a/entity_translation.module b/entity_translation.module
index 13cb322..d03ec6b 100644
--- a/entity_translation.module
+++ b/entity_translation.module
@@ -533,7 +533,7 @@ function entity_translation_edit_page() {
   // Set the current form language.
   $handler = entity_translation_get_handler($entity_type, $entity);
   $handler->initPathScheme();
-  $langcode = entity_translation_form_language($langcode, $handler);
+  $langcode = entity_translation_get_existing_language($entity_type, $entity, $langcode);
   $handler->setFormLanguage($langcode);
 
   // Display the entity edit form.
@@ -551,7 +551,7 @@ function entity_translation_edit_access() {
 
   $handler = entity_translation_get_handler($entity_type, $entity);
   $translations = $handler->getTranslations();
-  $langcode = entity_translation_form_language($langcode, $handler);
+  $langcode = $langcode = entity_translation_get_existing_language($entity_type, $entity, $langcode);
 
   // The user must be explicitly allowed to access the original values if
   // workflow permissions are enabled.
@@ -579,11 +579,6 @@ function entity_translation_edit_access() {
 /**
  * Determines the current form language.
  *
- * Based on the requested language and the translations available for the entity
- * being edited, determines the active form language. This takes into account
- * language fallback rules so that the translation being edited matches the one
- * being viewed.
- *
  * @param $langcode
  *   The requested language code.
  * @param EntityTranslationHandlerInterface $handler
@@ -591,8 +586,35 @@ function entity_translation_edit_access() {
  *
  * @return
  *   A valid language code.
+ *
+ * @deprecated This is no longer used and will be removed in the first stable
+ *   release.
  */
 function entity_translation_form_language($langcode, $handler) {
+  return entity_translation_get_existing_language($handler->getEntity(), $handler->getEntityType(), $langcode);
+}
+
+/**
+ * Determines an existing translation language.
+ *
+ * Based on the requested language and the translations available for the given
+ * entity, determines an existing translation language. This takes into account
+ * language fallback rules.
+ *
+ * @param $entity_type
+ *    The type of the entity.
+ * @param $entity
+ *    The entity whose existing translation language has to be returned.
+ * @param $langcode
+ *   (optional) The requested language code. Defaults to the current content
+ *   language.
+ *
+ * @return
+ *   A valid language code.
+ */
+function entity_translation_get_existing_language($entity_type, $entity, $langcode = NULL) {
+  $handler = entity_translation_get_handler($entity_type, $entity);
+
   if (empty($langcode)) {
     $langcode = $GLOBALS['language_content']->language;
   }
diff --git a/includes/translation.handler.inc b/includes/translation.handler.inc
index ea21b86..c8aa1bf 100644
--- a/includes/translation.handler.inc
+++ b/includes/translation.handler.inc
@@ -144,14 +144,22 @@ interface EntityTranslationHandlerInterface {
   public function setEntity($entity);
 
   /**
-   * Retrieve the current entity.
+   * Returns the wrapped entity.
    *
    * @param return
-   *  The entity to be translated.
+   *   The wrapped entity.
    */
   public function getEntity();
 
   /**
+   * Returns the wrapped entity type.
+   *
+   * @param return
+   *   The wrapped entity type.
+   */
+  public function getEntityType();
+
+  /**
    * Checks that the wrapped entity matches the give entity
    *
    * @param $entity_type
@@ -851,6 +859,13 @@ class EntityTranslationDefaultHandler implements EntityTranslationHandlerInterfa
   }
 
   /**
+   * @see EntityTranslationHandlerInterface::getEntityType()
+   */
+  public function getEntityType() {
+    return $this->entityType;
+  }
+
+  /**
    * @see EntityTranslationHandlerInterface::isWrappedEntity()
    */
   public function isWrappedEntity($entity_type, $entity) {
