diff --git a/src/domain/navigation/index.js b/src/domain/navigation/index.js
index 5dbb790f..a8d3bccd 100644
--- a/src/domain/navigation/index.js
+++ b/src/domain/navigation/index.js
@@ -37,7 +37,9 @@ function allowsChild(parent, child) {
             // downside of the approach: both of these will control which tile is selected
             return type === "room" || type === "empty-grid-tile";
         case "room":
-            return type === "lightbox" || type === "details"  || type === "members";
+            return type === "lightbox" || type === "members" || type === "rightpanel";
+        case "rightpanel":
+            return type === "details";
         default:
             return false;
     }
@@ -114,6 +116,7 @@ export function parseUrlPath(urlPath, currentNavPath, defaultSessionId) {
             }
             segments.push(new Segment("room", roomId));
             if (currentNavPath.get("details")?.value) {
+                segments.push(new Segment("rightpanel"));
                 segments.push(new Segment("details"));
             }
         } else if (type === "last-session") {
@@ -124,6 +127,9 @@ export function parseUrlPath(urlPath, currentNavPath, defaultSessionId) {
             if (sessionSegment) {
                 segments.push(sessionSegment);
             }
+        } else if (type === "details") {
+            segments.push(new Segment("rightpanel"));
+            segments.push(new Segment("details"));
         } else {
             // might be undefined, which will be turned into true by Segment 
             const value = iterator.next().value;
@@ -152,6 +158,8 @@ export function stringifyPath(path) {
                     urlPath += `/${segment.type}/${segment.value}`;
                 }
                 break;
+            case "rightpanel":
+                continue;
             default:
                 urlPath += `/${segment.type}`;
                 if (segment.value && segment.value !== true) {
@@ -185,6 +193,18 @@ export function tests() {
             const urlPath = stringifyPath(path);
             assert.equal(urlPath, "/session/1/rooms/a,b,c/1");
         },
+        "stringify url with rightpanel and details segment": assert => {
+            const nav = new Navigation(allowsChild);
+            const path = nav.pathFrom([
+                new Segment("session", 1),
+                new Segment("rooms", ["a", "b", "c"]),
+                new Segment("room", "b"),
+                new Segment("rightpanel"),
+                new Segment("details")
+            ]);
+            const urlPath = stringifyPath(path);
+            assert.equal(urlPath, "/session/1/rooms/a,b,c/1/details");
+        },
         "parse grid url path with focused empty tile": assert => {
             const segments = parseUrlPath("/session/1/rooms/a,b,c/3");
             assert.equal(segments.length, 3);
@@ -263,18 +283,21 @@ export function tests() {
                 new Segment("session", 1),
                 new Segment("rooms", ["a", "b", "c"]),
                 new Segment("room", "b"),
+                new Segment("rightpanel", true),
                 new Segment("details", true)
             ]);
             const segments = parseUrlPath("/session/1/open-room/a", path);
-            assert.equal(segments.length, 4);
+            assert.equal(segments.length, 5);
             assert.equal(segments[0].type, "session");
             assert.equal(segments[0].value, "1");
             assert.equal(segments[1].type, "rooms");
             assert.deepEqual(segments[1].value, ["a", "b", "c"]);
             assert.equal(segments[2].type, "room");
             assert.equal(segments[2].value, "a");
-            assert.equal(segments[3].type, "details");
+            assert.equal(segments[3].type, "rightpanel");
             assert.equal(segments[3].value, true);
+            assert.equal(segments[4].type, "details");
+            assert.equal(segments[4].value, true);
         },
         "parse open-room action setting a room in an empty tile": assert => {
             const nav = new Navigation(allowsChild);