+ if (current)
+ if (last)
+ {
+ Context * dest = 0;
+ Context * where = get_outlet ();
+ while (!dest && where)
+ {
+ dest = find_context_below (where, to_type, to_id);
+ where = where->get_parent_context ();
+ }
+
+ if (dest)
+ {
+ current->remove_context (last);
+ dest->add_context (last);
+ }
+ else
+ {
+ get_music ()->origin ()->warning ("could not find context to switch to.");
+ }
+ }
+ else
+ {
+ /*
+ We could change the current translator's id, but that would make
+ errors hard to catch
+
+ last->translator_id_string () = get_change ()->change_to_id_string ();
+ */
+ error (_ ("I'm one myself"));
+ }
+ else
+ error (_ ("none of these in my family"));
+
+ Simple_music_iterator::process (m);