diff --git a/js/panels_ipe/panels_ipe.js b/js/panels_ipe/panels_ipe.js
index 36af774..6fadd3a 100644
--- a/js/panels_ipe/panels_ipe.js
+++ b/js/panels_ipe/panels_ipe.js
@@ -34,7 +34,7 @@
             // Remove our changes and refresh the page.
             revert_tab.set({loading: true});
             $.ajax({
-              url: drupalSettings.path.baseUrl + 'admin/panelizer/panels_ipe/' + entity.entity_type_id + '/' + entity.entity_id + '/' + entity.view_mode + '/revert_to_default',
+              url: drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix + 'admin/panelizer/panels_ipe/' + entity.entity_type_id + '/' + entity.entity_id + '/' + entity.view_mode + '/revert_to_default',
               data: {},
               type: 'POST'
             }).done(function (data) {
diff --git a/src/Controller/PanelizerPanelsIPEController.php b/src/Controller/PanelizerPanelsIPEController.php
index 6e14bc2..ea364d6 100644
--- a/src/Controller/PanelizerPanelsIPEController.php
+++ b/src/Controller/PanelizerPanelsIPEController.php
@@ -6,7 +6,9 @@ use Drupal\Component\Serialization\Json;
 use Drupal\Core\Access\AccessResult;
 use Drupal\Core\Controller\ControllerBase;
 use Drupal\Core\Entity\FieldableEntityInterface;
+use Drupal\Core\Language\LanguageInterface;
 use Drupal\Core\Session\AccountInterface;
+use Drupal\Core\TypedData\TranslatableInterface;
 use Drupal\panelizer\PanelizerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpFoundation\Request;
@@ -59,6 +61,13 @@ class PanelizerPanelsIPEController extends ControllerBase {
    * @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException
    */
   public function revertToDefault(FieldableEntityInterface $entity, $view_mode) {
+    $langcode = $this->languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId();
+    if ($entity instanceof TranslatableInterface
+      && $entity->hasTranslation($langcode)
+      && $entity->language()->getId() !== $langcode) {
+      $entity = $entity->getTranslation($langcode);
+    }
+
     // Get the bundle specific default display as a fallback.
     $settings = $this->panelizer->getPanelizerSettings($entity->getEntityTypeId(), $entity->bundle(), $view_mode);
     $default = $settings['default'];
diff --git a/src/Plugin/PanelsStorage/PanelizerFieldPanelsStorage.php b/src/Plugin/PanelsStorage/PanelizerFieldPanelsStorage.php
index ca946f8..bc41b8e 100644
--- a/src/Plugin/PanelsStorage/PanelizerFieldPanelsStorage.php
+++ b/src/Plugin/PanelsStorage/PanelizerFieldPanelsStorage.php
@@ -6,10 +6,13 @@ use Drupal\Core\Access\AccessResult;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Entity\FieldableEntityInterface;
+use Drupal\Core\Language\LanguageInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\Core\Plugin\Context\Context;
 use Drupal\Core\Plugin\Context\ContextDefinition;
 use Drupal\Core\Session\AccountInterface;
+use Drupal\Core\TypedData\TranslatableInterface;
 use Drupal\ctools\Context\AutomaticContext;
 use Drupal\panelizer\Exception\PanelizerException;
 use Drupal\panelizer\PanelizerInterface;
@@ -35,6 +38,13 @@ class PanelizerFieldPanelsStorage extends PanelsStorageBase implements Container
   protected $panelizer;
 
   /**
+   * The language manager.
+   *
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   */
+  protected $languageManager;
+
+  /**
    * Constructs a PanelizerDefaultPanelsStorage.
    *
    * @param array $configuration
@@ -47,10 +57,13 @@ class PanelizerFieldPanelsStorage extends PanelsStorageBase implements Container
    *   The entity type manager.
    * @param \Drupal\panelizer\PanelizerInterface $panelizer
    *   The Panelizer service.
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   *   The language manager.
    */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, PanelizerInterface $panelizer) {
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, PanelizerInterface $panelizer, LanguageManagerInterface $language_manager) {
     $this->entityTypeManager = $entity_type_manager;
     $this->panelizer = $panelizer;
+    $this->languageManager = $language_manager;
     parent::__construct($configuration, $plugin_id, $plugin_definition);
   }
 
@@ -63,7 +76,8 @@ class PanelizerFieldPanelsStorage extends PanelsStorageBase implements Container
       $plugin_id,
       $plugin_definition,
       $container->get('entity_type.manager'),
-      $container->get('panelizer')
+      $container->get('panelizer'),
+      $container->get('language_manager')
     );
   }
 
@@ -86,6 +100,13 @@ class PanelizerFieldPanelsStorage extends PanelsStorageBase implements Container
       $entity = $storage->load($id);
     }
 
+    $langcode = $this->languageManager->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId();
+    if ($entity instanceof TranslatableInterface
+      && $entity->hasTranslation($langcode)
+      && $entity->language()->getId() !== $langcode) {
+      $entity = $entity->getTranslation($langcode);
+    }
+
     return $entity;
   }
 
diff --git a/tests/src/FunctionalJavascript/EditTranslatedContentTest.php b/tests/src/FunctionalJavascript/EditTranslatedContentTest.php
new file mode 100644
index 0000000..afc52d9
--- /dev/null
+++ b/tests/src/FunctionalJavascript/EditTranslatedContentTest.php
@@ -0,0 +1,110 @@
+<?php
+
+namespace Drupal\Tests\panelizer\FunctionalJavascript;
+
+use Behat\Mink\Driver\Selenium2Driver;
+use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
+use Drupal\Tests\panels_ipe\FunctionalJavascript\PanelsIPETestTrait;
+
+/**
+ * Tests editing translated content with Panels IPE.
+ *
+ * @group panelizer
+ */
+class EditTranslatedContentTest extends JavascriptTestBase {
+
+  use PanelsIPETestTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = [
+    'field_ui',
+    'node',
+    'panels',
+    'panels_ipe',
+    'panelizer',
+    'system',
+    'language',
+    'content_translation',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    // Create admin user.
+    $account = $this->drupalCreateUser([], NULL, TRUE);
+    $this->drupalLogin($account);
+
+    // Create the "Basic Page" content type.
+    $this->drupalCreateContentType([
+      'type' => 'page',
+      'name' => 'Basic Page',
+    ]);
+
+    // Add language.
+    $this->drupalGet('admin/config/regional/language/add');
+    $this->submitForm(['predefined_langcode' => 'hu'], t('Add language'));
+
+    // Enable Panelizer for the "Basic Page" content type.
+    $this->drupalGet('admin/structure/types/manage/page/display');
+    $this->submitForm([
+      'panelizer[enable]' => 1,
+      'panelizer[custom]' => 1,
+    ], t('Save'));
+
+    // Enable content translation for the "Basic Page" content type.
+    $this->drupalGet('admin/config/regional/content-language');
+    $this->submitForm([
+      'entity_types[node]' => TRUE,
+      'settings[node][page][translatable]' => TRUE,
+    ], t('Save configuration'));
+
+    // Create a new Basic Page.
+    $this->drupalGet('node/add/page');
+    $this->submitForm(['title[0][value]' => 'Test Node'], t('Save'));
+
+    // Translate node.
+    $this->drupalGet('node/1/translations/add/en/hu');
+    $this->submitForm(['title[0][value]' => 'Test Node -hu-'], t('Save'));
+  }
+
+  /**
+   * Tests editing translated content with Panels IPE.
+   */
+  public function testEditingTranslatedContent() {
+    // Set the window size to ensure that IPE elements are visible.
+    $this->getSession()->resizeWindow(1024, 768);
+
+    // Change the layout of translated node.
+    $this->drupalGet('hu/node/1');
+    $this->changeLayout('Columns: 2', 'layout_twocol_bricks');
+    $this->clickAndWait('[data-tab-id="save"]');
+
+    // Assert original node hasn't changed.
+    $this->drupalGet('node/1');
+    $this->assertSession()->elementExists('css', '.layout--onecol');
+    $this->assertSession()->elementNotExists('css', '.layout--twocol-bricks');
+
+    // Assert Revert to Default is working.
+    $driver = $this->getSession()->getDriver();
+    if (!($driver instanceof Selenium2Driver)) {
+      return;
+    }
+
+    $this->drupalGet('hu/node/1');
+    $this->assertSession()->elementExists('css', '.layout--twocol-bricks');
+    $this->assertSession()->elementNotExists('css', '.layout--onecol');
+    $this->click('[data-tab-id="revert"]');
+    // Wait for alert box to show up.
+    sleep(1);
+    $driver->getWebDriverSession()->accept_alert();
+    $this->waitForAjaxToFinish();
+    $this->assertSession()->elementExists('css', '.layout--onecol');
+    $this->assertSession()->elementNotExists('css', '.layout--twocol-bricks');
+  }
+
+}
diff --git a/tests/src/Unit/PanelizerFieldPanelsStorageTest.php b/tests/src/Unit/PanelizerFieldPanelsStorageTest.php
index 089ddc1..b56694e 100644
--- a/tests/src/Unit/PanelizerFieldPanelsStorageTest.php
+++ b/tests/src/Unit/PanelizerFieldPanelsStorageTest.php
@@ -6,6 +6,8 @@ use Drupal\Core\Access\AccessResult;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Entity\FieldableEntityInterface;
+use Drupal\Core\Language\LanguageInterface;
+use Drupal\Core\Language\LanguageManager;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\ctools\Context\AutomaticContext;
 use Drupal\panelizer\Exception\PanelizerException;
@@ -56,6 +58,13 @@ class PanelizerFieldPanelsStorageTest extends UnitTestCase {
 
     $this->panelizer = $this->prophesize(Panelizer::class);
 
+    /** @var \Drupal\Core\Language\LanguageInterface|\Prophecy\Prophecy\ProphecyInterface $language */
+    $language = $this->prophesize(LanguageInterface::class);
+    $language->getId()->willReturn('en');
+    /** @var \Drupal\Core\Language\LanguageManagerInterface|\Prophecy\Prophecy\ProphecyInterface $language_manager */
+    $language_manager = $this->prophesize(LanguageManager::class);
+    $language_manager->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->willReturn($language);
+
     $this->panelsStorage = $this->getMockBuilder(PanelizerFieldPanelsStorage::class)
       ->setConstructorArgs([
         [],
@@ -63,6 +72,7 @@ class PanelizerFieldPanelsStorageTest extends UnitTestCase {
         [],
         $this->entityTypeManager->reveal(),
         $this->panelizer->reveal(),
+        $language_manager->reveal(),
       ])
       ->setMethods(['getEntityContext'])
       ->getMock();
