+ Grob *head = now_heads_[i];
+ Stream_event *left_ev
+ = unsmob_stream_event (head->get_property ("cause"));
+
+ if (!left_ev)
+ {
+ // may happen for ambituses
+ continue;
+ }
+
+
+ SCM left_articulations = left_ev->get_property ("articulations");
+
+ Stream_event *tie_event = 0;
+ Stream_event *tie_stream_event = event_;
+ for (SCM s = left_articulations;
+ !tie_event && !tie_stream_event && scm_is_pair (s);
+ s = scm_cdr (s))
+ {
+ Stream_event *ev = unsmob_stream_event (scm_car (s));
+ if (!ev)
+ continue;
+
+ if (ev->in_event_class ("tie-event"))
+ tie_event = ev;
+ }
+
+ if (left_ev && (tie_event || tie_stream_event))
+ {
+ Head_event_tuple event_tup;
+
+ SCM start_definition
+ = updated_grob_properties (context (), ly_symbol2scm ("Tie"));
+
+ event_tup.head_ = head;
+ event_tup.tie_definition_ = start_definition;
+ event_tup.tie_event_ = tie_event;
+ event_tup.tie_stream_event_ = tie_stream_event;
+
+ Moment end = now_mom ();
+ if (end.grace_part_)
+ {
+ end.grace_part_ += get_event_length (left_ev).main_part_;
+ }
+ else
+ {
+ end += get_event_length (left_ev);
+ }
+ event_tup.end_moment_ = end;
+
+ new_heads_to_tie.push_back (event_tup);
+ }