- Spanner*sp = dynamic_cast<Spanner*> (me);
- SCM worth = me->get_property ("items-worth-living");
- if (ly_c_pair_p (worth))
- return ;
-
- if (!to_boolean (me->get_property ("remove-first"))
- && broken_spanner_index (sp) == 0)
- {
- return ;
- }
-
- Link_array<Grob> childs = Axis_group_interface::get_children (me);
+ Spanner *sp = dynamic_cast<Spanner *> (me);
+
+ extract_grob_set (me, "items-worth-living", worth);
+ if (worth.size ())
+ return;
+
+ bool remove_first = to_boolean (me->get_property ("remove-first"));
+ if (!remove_first
+ && ((sp->original_ && broken_spanner_index (sp) == 0)
+ || Paper_column::get_rank (sp->get_bound (LEFT)->get_column ())
+ == 0))
+ return;
+
+ Link_array<Grob> childs;
+ Axis_group_interface::get_children (me, &childs);