diff --git a/src/assets/stylesheets/hub.scss b/src/assets/stylesheets/hub.scss
index 1f7f530e911e8730be9a4a49f9e8a39fd33542e6..a562a8013f81fabbd400a925209eb24dd5ea6650 100644
--- a/src/assets/stylesheets/hub.scss
+++ b/src/assets/stylesheets/hub.scss
@@ -9,7 +9,7 @@
 @import 'info-dialog';
 
 body.vr-mode {
-  a-scene.fullscreen {
+  a-scene {
     .a-canvas {
       width: 200% !important;
     }
diff --git a/src/hub.html b/src/hub.html
index a4eff0a0038a245bba16c6645821bf3f74623928..276efb05f1484f55971cffc2f4c28d94488e3ead 100644
--- a/src/hub.html
+++ b/src/hub.html
@@ -342,6 +342,7 @@
                 class="camera"
                 camera
                 personal-space-bubble="radius: 0.4;"
+                rotation
                 pitch-yaw-rotator
             >
                 <a-entity
diff --git a/src/hub.js b/src/hub.js
index cee2b1be8448112241012b9e8c1986f3130afb09..d967dc93483795102168b340126d7782ff235017 100644
--- a/src/hub.js
+++ b/src/hub.js
@@ -317,7 +317,17 @@ document.addEventListener("DOMContentLoaded", async () => {
 
   window.APP.scene = scene;
 
-  scene.addEventListener("enter-vr", () => document.body.classList.add("vr-mode"));
+  scene.addEventListener("enter-vr", () => {
+    document.body.classList.add("vr-mode");
+
+    if (!scene.is("entered")) {
+      // If VR headset is activated, refreshing page will fire vrdisplayactivate
+      // which puts A-Frame in VR mode, so exit VR mode whenever it is attempted
+      // to be entered and we haven't entered the room yet.
+      scene.exitVR();
+    }
+  });
+
   scene.addEventListener("exit-vr", () => document.body.classList.remove("vr-mode"));
 
   registerNetworkSchemas();