diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js
index 168ec57..fce9c27 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js
@@ -160,10 +160,17 @@
     },
 
     _getChangeDetail(changeNum) {
-      return this.$.restAPI.getDiffChangeDetail(changeNum).then(
-          change => {
-            this._change = change;
-          });
+      return this.$.restAPI.getDiffChangeDetail(changeNum).then(change => {
+        this._change = change;
+        this._upgradeUrl(change, this.params);
+      });
+    },
+
+    _upgradeUrl(change, params) {
+      const project = change.project;
+      if (!params.project || project !== params.project) {
+        Gerrit.Nav.upgradeUrl(Object.assign({}, params, {project}));
+      }
     },
 
     _getFiles(changeNum, patchRangeRecord) {
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html
index 1503f93f..afba895 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html
@@ -463,6 +463,7 @@
       stub('gr-rest-api-interface', {
         getDiffComments() { return Promise.resolve({}); },
       });
+      sandbox.stub(element, '_upgradeUrl');
       const saveReviewedStub = sandbox.stub(element, '_saveReviewedState',
           () => Promise.resolve());
       sandbox.stub(element.$.diff, 'reload');
@@ -497,6 +498,7 @@
       stub('gr-rest-api-interface', {
         getDiffComments() { return Promise.resolve({}); },
       });
+      sandbox.stub(element, '_upgradeUrl');
       sandbox.stub(element.$.diff, 'reload');
       sandbox.stub(element, '_loadHash');
 
@@ -734,5 +736,31 @@
         assert.isNull(result.next);
       });
     });
+
+    suite('_upgradeUrl calls', () => {
+      let upgradeStub;
+      const mockChange = {project: 'test'};
+
+      setup(() => {
+        upgradeStub = sandbox.stub(window.Gerrit.Nav, 'upgradeUrl');
+      });
+
+      test('app.params.project undefined', () => {
+        element._upgradeUrl(mockChange, {});
+        assert.isTrue(upgradeStub.called);
+        assert.deepEqual(upgradeStub.lastCall.args[0], mockChange);
+      });
+
+      test('app.params.project differs from change.project', () => {
+        element._upgradeUrl(mockChange, {project: 'demo'});
+        assert.isTrue(upgradeStub.called);
+        assert.deepEqual(upgradeStub.lastCall.args[0], mockChange);
+      });
+
+      test('app.params.project === change.project', () => {
+        element._upgradeUrl(mockChange, {project: 'test'});
+        assert.isFalse(upgradeStub.called);
+      });
+    });
   });
 </script>
