diff --git a/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/Test.as b/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/Test.as
new file mode 100644
index 0000000000000..d14f8b6b20150
--- /dev/null
+++ b/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/Test.as
@@ -0,0 +1,41 @@
+package {
+import flash.display.Sprite;
+import flash.text.TextField;
+import flash.text.TextFormat;
+
+[SWF(width="400", height="400")]
+public class Test extends Sprite {
+ private var text:TextField;
+
+ public function Test() {
+ stage.scaleMode = "noScale";
+ text = new TextField();
+ text.border = true;
+ text.x = 10;
+ text.y = 10;
+ text.width = 380;
+ text.height = 380;
+ text.multiline = true;
+ text.embedFonts = true;
+ addChild(text);
+
+ testHtml("x y");
+ }
+
+ private function testHtml(htmlText:String):void {
+ text.htmlText = htmlText;
+ trace("Text: " + htmlText.replace(/[\r\n]/g, "\\n"));
+
+ testAt(-5);
+ testAt(-1);
+ for (var i = 0; i <= text.text.length; ++i) {
+ testAt(i);
+ }
+ }
+
+ private function testAt(charIndex:int):void {
+ var bounds = text.getCharBoundaries(charIndex);
+ trace(" text.getCharBoundaries(" + charIndex + ") = " + bounds);
+ }
+}
+}
diff --git a/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/output.txt b/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/output.txt
new file mode 100644
index 0000000000000..773bd6b7069f6
--- /dev/null
+++ b/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/output.txt
@@ -0,0 +1,7 @@
+Text: x y
+ text.getCharBoundaries(-5) = null
+ text.getCharBoundaries(-1) = null
+ text.getCharBoundaries(0) = null
+ text.getCharBoundaries(1) = null
+ text.getCharBoundaries(2) = null
+ text.getCharBoundaries(3) = null
diff --git a/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/test.swf b/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/test.swf
new file mode 100644
index 0000000000000..337725223f319
Binary files /dev/null and b/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/test.swf differ
diff --git a/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/test.toml b/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/test.toml
new file mode 100644
index 0000000000000..bc5a6a5254909
--- /dev/null
+++ b/tests/tests/swfs/avm2/edittext_getcharboundaries_missing_embedded_font/test.toml
@@ -0,0 +1,4 @@
+num_ticks = 1
+
+# Currently Ruffle falls back to device font on missing embedded font.
+known_failure = true