+ Moment len =iter_p_->music_length_mom () - iter_p_->music_start_mom ();
+ assert (!grace_fixups_ || grace_fixups_->start_ >= here_mom_);
+
+ if (len.main_part_ && grace_fixups_ &&
+ grace_fixups_->start_ == here_mom_)
+ {
+ here_mom_ += grace_fixups_->length_;
+ here_mom_.grace_part_ += grace_fixups_->grace_start_;
+
+ Grace_fixup * n =grace_fixups_->next_;
+ delete grace_fixups_;
+ grace_fixups_ = n;
+ }
+ else if (len.grace_part_ && !len.main_part_)
+ {
+ here_mom_.grace_part_ =0;
+ }
+ else
+ {
+ /*
+ !len.grace_part_ || len.main_part_
+
+ We skip over a big chunk (mainpart != 0). Any starting graces
+ in that chunk should be in len.grace_part_
+
+ */
+ here_mom_ += len;
+ }
+
+ delete iter_p_;
+ cursor_ = ly_cdr (cursor_);
+
+ if (gh_pair_p (cursor_))
+ iter_p_ = get_iterator_p (unsmob_music (ly_car (cursor_)));
+ else
+ iter_p_ = 0;