diff --git a/lib/codemirror.js b/lib/codemirror.js
index 71010ddab2b0c79ed76d9ee247450654ce331684..d89b3b48f4c61600b15058388f5b265c7f3ef778 100644
--- a/lib/codemirror.js
+++ b/lib/codemirror.js
@@ -8558,8 +8558,9 @@
     if (badBidiRects != null) return badBidiRects;
     var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA"));
     var r0 = range(txt, 0, 1).getBoundingClientRect();
-    if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780)
     var r1 = range(txt, 1, 2).getBoundingClientRect();
+    removeChildren(measure);
+    if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780)
     return badBidiRects = (r1.right - r0.right < 3);
   }