- SCM sym = get_music ()->get_property ("symbol");
- send_stream_event (get_outlet (), "UnsetProperty", get_music ()->origin (),
- ly_symbol2scm ("symbol"), sym);
+ Context *o = get_outlet ();
+ Music *m = get_music ();
+ bool once = to_boolean (m->get_property ("once"));
+ SCM symbol = m->get_property ("symbol");
+ SCM previous_value = SCM_UNDEFINED;
+ if (once) {
+ Context *w = o->where_defined (symbol, &previous_value);
+ if (o != w)
+ previous_value = SCM_UNDEFINED;
+ }
+ send_stream_event (o, "UnsetProperty", m->origin (),
+ ly_symbol2scm ("symbol"), symbol);