diff --git a/src/hb-ot-shape-complex-arabic.cc b/src/hb-ot-shape-complex-arabic.cc
index 283f325b4..eda20ca1e 100644
--- a/src/hb-ot-shape-complex-arabic.cc
+++ b/src/hb-ot-shape-complex-arabic.cc
@@ -560,6 +560,7 @@ apply_stch (const hb_ot_shape_plan_t *plan,
       }
       else
       {
+	buffer->unsafe_to_break (context, end + 1);
 	hb_position_t x_offset = 0;
 	for (unsigned int k = end; k > start; k--)
 	{
diff --git a/test/shaping/Makefile.am b/test/shaping/Makefile.am
index 377c08d0e..ca7c1c30b 100644
--- a/test/shaping/Makefile.am
+++ b/test/shaping/Makefile.am
@@ -45,6 +45,7 @@ TESTS = \
 	tests/arabic-feature-order.tests \
 	tests/arabic-like-joining.tests \
 	tests/arabic-mark-order.tests \
+	tests/arabic-stch.tests \
 	tests/automatic-fractions.tests \
 	tests/cluster.tests \
 	tests/color-fonts.tests \
diff --git a/test/shaping/fonts/sha1sum/d9b8bc10985f24796826c29f7ccba3d0ae11ec02.ttf b/test/shaping/fonts/sha1sum/d9b8bc10985f24796826c29f7ccba3d0ae11ec02.ttf
new file mode 100644
index 000000000..112146eb4
Binary files /dev/null and b/test/shaping/fonts/sha1sum/d9b8bc10985f24796826c29f7ccba3d0ae11ec02.ttf differ
diff --git a/test/shaping/tests/arabic-stch.tests b/test/shaping/tests/arabic-stch.tests
new file mode 100644
index 000000000..a268d8a7c
--- /dev/null
+++ b/test/shaping/tests/arabic-stch.tests
@@ -0,0 +1 @@
+fonts/sha1sum/d9b8bc10985f24796826c29f7ccba3d0ae11ec02.ttf:--no-glyph-names --show-flags:U+0718,U+070F,U+0718,U+0718,U+002E:[1=4+168|3=3+502#1|3=2+502#1|4=1@-1004,0+0#1|5=1@-876,0+0#1|5=1@-799,0+0#1|5=1@-722,0+0#1|5=1@-645,0+0#1|4=1@-566,0+0#1|5=1@-438,0+0#1|5=1@-361,0+0#1|5=1@-284,0+0#1|5=1@-207,0+0#1|4=1@-128,0+0#1|3=0+502]