diff --git a/test/components/structures/TimelinePanel-test.js b/test/components/structures/TimelinePanel-test.js
index 671d5c7774..d314e7db94 100644
--- a/test/components/structures/TimelinePanel-test.js
+++ b/test/components/structures/TimelinePanel-test.js
@@ -76,7 +76,8 @@ describe('TimelinePanel', function() {
 
     afterEach(function() {
         if (parentDiv) {
-            document.body.removeChild(parentDiv);
+            ReactDOM.unmountComponentAtNode(parentDiv);
+            parentDiv.remove();
             parentDiv = null;
         }
         sandbox.restore();
diff --git a/test/test-utils.js b/test/test-utils.js
index a077722678..d2e40e0ee0 100644
--- a/test/test-utils.js
+++ b/test/test-utils.js
@@ -37,6 +37,7 @@ module.exports.stubClient = function() {
         getRoom: sinon.stub(),
         loginFlows: sinon.stub(),
         on: sinon.stub(),
+        removeListener: sinon.stub(),
 
         paginateEventTimeline: sinon.stub().returns(q()),
         sendReadReceipt: sinon.stub().returns(q()),