diff --git a/src/SIL.Machine.Morphology.HermitCrab/PhonologicalRules/NarrowSynthesisRewriteSubruleSpec.cs b/src/SIL.Machine.Morphology.HermitCrab/PhonologicalRules/NarrowSynthesisRewriteSubruleSpec.cs index 627df69f..99957f35 100644 --- a/src/SIL.Machine.Morphology.HermitCrab/PhonologicalRules/NarrowSynthesisRewriteSubruleSpec.cs +++ b/src/SIL.Machine.Morphology.HermitCrab/PhonologicalRules/NarrowSynthesisRewriteSubruleSpec.cs @@ -42,9 +42,16 @@ VariableBindings varBindings } ShapeNode[] nodes = targetMatch.Input.Shape.GetNodes(range).ToArray(); - for (int i = 0; i < _targetCount; i++) + int deleted = 0; + for (int i = 0; i < nodes.Length; i++) + { + if (nodes[i].IsDeleted()) + continue; nodes[i].SetDeleted(true); - + deleted++; + if (deleted == _targetCount) + break; + } MarkSuccessfulApply(targetMatch.Input); } }