+ Grob *h = i.grob ();
+ now_heads_.push (h);
+ for (int i = heads_to_tie_.size (); i--;)
+ {
+ Grob *th = heads_to_tie_[i].head_;
+ Music *right_mus = unsmob_music (h->get_property ("cause"));
+ Music *left_mus = unsmob_music (th->get_property ("cause"));
+
+ /*
+ maybe should check positions too.
+ */
+ if (right_mus && left_mus
+ && ly_is_equal (right_mus->get_property ("pitch"),
+ left_mus->get_property ("pitch")))
+ {
+ Grob *p = new Spanner (heads_to_tie_[i].tie_definition_,
+ context ()->get_grob_key ("Tie"));
+ announce_grob (p, heads_to_tie_[i].event_->self_scm ());
+ Tie::set_interface (p); // cannot remove yet!
+
+ Tie::set_head (p, LEFT, th);
+ Tie::set_head (p, RIGHT, h);
+
+ ties_.push (p);
+ heads_to_tie_.del (i);
+ }
+ }
+
+ if (ties_.size () && ! tie_column_)