+ scm_gc_mark (lyric_iter_->self_scm ());
+}
+
+void
+Lyric_combine_music_iterator::derived_substitute (Context *f, Context *t)
+{
+ if (music_iter_)
+ music_iter_->substitute_outlet (f, t);
+ if (lyric_iter_)
+ lyric_iter_->substitute_outlet (f, t);
+}
+
+Music *
+Lyric_combine_music_iterator::get_combine_music () const
+{
+ SCM l = get_music ()->get_property ("elements");
+ if (!scm_is_pair (l))
+ return 0;
+ return unsmob_music (scm_car (l));
+}
+
+Music *
+Lyric_combine_music_iterator::get_combine_lyrics () const
+{
+ SCM l = get_music ()->get_property ("elements");
+ if (!scm_is_pair (l))
+ return 0;
+ l = scm_cdr (l);
+ if (!scm_is_pair (l))
+ return 0;
+ return unsmob_music (scm_car (l));