-void
-Rest_collision_engraver::acknowledge_note_column (Grob_info i)
-{
- note_columns_.push_back (i.grob ());
- if (Note_column::has_rests (i.grob ()))
- rest_count_++;
+ // Only include rests that start now. Include notes that started any time.
+ Paper_column *paper_column = dynamic_cast<Item*> (column)->get_column ();
+ if (!Rest::has_interface (g) || !paper_column || Paper_column::when_mom (paper_column) == now)
+ {
+ columns.insert (column);
+ rest_count += Note_column::has_rests (column);
+ }
+ }
+ }
+
+ if (!rest_collision_ && rest_count && columns.size () > 1)
+ {
+ rest_collision_ = make_item ("RestCollision", SCM_EOL);
+ for (set<Grob*>::iterator i = columns.begin (); i != columns.end (); ++i)
+ Rest_collision::add_column (rest_collision_, *i);
+ }