diff --git a/src/Controller/ContentLockController.php b/src/Controller/ContentLockController.php
index 34a9ace..4a2aa23 100644
--- a/src/Controller/ContentLockController.php
+++ b/src/Controller/ContentLockController.php
@@ -10,6 +10,7 @@ use Drupal\Core\Ajax\PrependCommand;
 use Drupal\Core\Controller\ControllerBase;
 use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Session\AccountInterface;
+use Drupal\language\Entity\ConfigurableLanguage;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpFoundation\Request;
 
@@ -67,7 +68,8 @@ class ContentLockController extends ControllerBase {
       $response->addCommand(new PrependCommand('', ['#type' => 'status_messages']));
 
       if ($lock) {
-        $unlock_button = $this->lockService->unlockButton($entity->getEntityTypeId(), $entity->id(), $langcode, $form_op, $entity->toUrl()->toString());
+        $url = $entity->toUrl('canonical', ['language' => ConfigurableLanguage::load($langcode)]);
+        $unlock_button = $this->lockService->unlockButton($entity->getEntityTypeId(), $entity->id(), $langcode, $form_op, $url->toString());
         $response->addCommand(new AppendCommand('.content-lock-actions.form-actions', $unlock_button));
       }
     }
diff --git a/src/Form/EntityBreakLockForm.php b/src/Form/EntityBreakLockForm.php
index f80a6ab..2542b29 100644
--- a/src/Form/EntityBreakLockForm.php
+++ b/src/Form/EntityBreakLockForm.php
@@ -10,6 +10,7 @@ use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\Url;
+use Drupal\language\Entity\ConfigurableLanguage;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpFoundation\RequestStack;
 
@@ -78,7 +79,8 @@ class EntityBreakLockForm extends FormBase {
       $form_state->setRedirectUrl($url);
     }
     else {
-      $this->redirect("entity.$entity_type.canonical", [$entity_type => $entity_id])->send();
+      $url = Url::fromRoute("entity.$entity_type.canonical", [$entity_type => $entity_id], ['language' => ConfigurableLanguage::load($form_state->get('langcode_entity'))]);
+      $form_state->setRedirectUrl($url);
     }
   }
 
@@ -93,6 +95,10 @@ class EntityBreakLockForm extends FormBase {
    * {@inheritdoc}
    */
   public function buildForm(array $form, FormStateInterface $form_state, ContentEntityInterface $entity = NULL, $langcode = NULL, $form_op = NULL) {
+    // Save langcode of lock, before checking if translation lock is enabled.
+    // This is needed to generate the correct entity URL for the given language.
+    $form_state->set('langcode_entity', $langcode);
+
     $translation_lock = $this->lockService->isTranslationLockEnabled($entity->getEntityTypeId());
     if (!$translation_lock) {
       $langcode = LanguageInterface::LANGCODE_NOT_SPECIFIED;
