diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js
index 6808ad215d49614d0dc9b05c265415f804f6ffdd..0960e29f64c2bc081ac856f1c9a48c2689a49662 100644
--- a/src/interaction/slaveInteract.js
+++ b/src/interaction/slaveInteract.js
@@ -1443,15 +1443,23 @@ App.UI.SlaveInteract.useSlaveDisplay = function(slave) {
 				Object.assign(V, sexOption.update);
 			}
 
-			// Scene
-			if (sexOption.scene) {
-				App.UI.replace('#miniscene', `<<include "${sexOption.scene}">>`);
-			} else if (sexOption.goto) {
-				App.UI.replace('#miniscene', `<<goto "${sexOption.goto}">>`);
+			if (sexOption.goto) {
+				// just play the passage, no need to refresh anything here
+				Engine.play(sexOption.goto);
+			} else if (sexOption.scene) {
+				// Run scene and store render results temporarily
+				let frag = document.createDocumentFragment();
+				$(frag).wiki(`<<include "${sexOption.scene}">>`);
+
+				// Refresh (clears scene display)
+				App.UI.SlaveInteract.refreshAll(V.slaves[V.slaveIndices[V.activeSlave.ID]]);
+
+				// Display scene render results
+				$("#miniscene").append(frag);
+			} else {
+				// just refresh
+				App.UI.SlaveInteract.refreshAll(V.slaves[V.slaveIndices[V.activeSlave.ID]]);
 			}
-
-			App.UI.SlaveInteract.refreshAll(V.slaves[V.slaveIndices[V.activeSlave.ID]]);
-			return;
 		}
 	}
 	return el;