diff --git a/panels_ipe/src/Plugin/DisplayBuilder/InPlaceEditorDisplayBuilder.php b/panels_ipe/src/Plugin/DisplayBuilder/InPlaceEditorDisplayBuilder.php
index 49d8122..34f0805 100644
--- a/panels_ipe/src/Plugin/DisplayBuilder/InPlaceEditorDisplayBuilder.php
+++ b/panels_ipe/src/Plugin/DisplayBuilder/InPlaceEditorDisplayBuilder.php
@@ -173,11 +173,14 @@ public function build(PanelsDisplayVariant $panels_display) {
       // If a temporary configuration for this variant exists, use it.
       $temp_store_key = $panels_display->id();
       if ($variant_config = $this->tempStore->get($temp_store_key)) {
-        unset($variant_config['id']);
-        $panels_display->setConfiguration($variant_config);
+        $lock_info = $this->tempStore->getMetadata($temp_store_key);
+        if ($lock_info->owner === $this->account->id()) {
+          unset($variant_config['id']);
+          $panels_display->setConfiguration($variant_config);
 
-        // Indicate that the user is viewing un-saved changes.
-        $unsaved = TRUE;
+          // Indicate that the user is viewing un-saved changes.
+          $unsaved = TRUE;
+        }
       }
 
       $build = parent::build($panels_display);
diff --git a/panels_ipe/tests/src/FunctionalJavascript/PageManagerIntegrationTest.php b/panels_ipe/tests/src/FunctionalJavascript/PageManagerIntegrationTest.php
index 18c7d39..6bb4303 100644
--- a/panels_ipe/tests/src/FunctionalJavascript/PageManagerIntegrationTest.php
+++ b/panels_ipe/tests/src/FunctionalJavascript/PageManagerIntegrationTest.php
@@ -41,4 +41,32 @@ protected function setUp() {
     $this->test_route = 'test-page';
   }
 
+  /**
+   * Tests that the IPE editing session is specific to a user.
+   */
+  public function testUserEditSession() {
+    $this->visitIPERoute();
+    $this->assertIPELoaded();
+    $this->assertSession()->elementExists('css', '.layout--onecol');
+
+    // Change the layout to lock the IPE.
+    $this->changeLayout('Columns: 2', 'layout_twocol');
+    $this->assertIPELoaded();
+    $this->assertSession()->elementExists('css', '.layout--twocol');
+    $this->assertSession()->elementNotExists('css', '.layout--onecol');
+
+    // Log in as a second admin user.
+    $this->drupalLogin($this->drupalCreateUser([
+      'access panels in-place editing',
+      'administer blocks',
+      'administer pages',
+    ]));
+
+    // Ensure the second user does not see the session of the other user.
+    $this->visitIPERoute();
+    $this->assertIPELoaded();
+    $this->assertSession()->elementExists('css', '.layout--onecol');
+    $this->assertSession()->elementNotExists('css', '.layout--twocol');
+  }
+
 }
