I have spent sometime debugging this. It seems that there is a mysterious property update received on both slider items when players are added to the menu or more particularly when the player's playlist item is made visible. I found that by breaking on the property update callback on the volume widget a sequence of updates are received for each property of that item (including type etc.) when the playlist item is 'turned on'. Here is the back trace of the culprit that sets the system volume to 0. #0 volume_widget_property_update (item=0x943e6a8, property=0x969bc00 "x-canonical-ido-volume-level", value=0x0, userdata=0x9670460) at volume-widget.c:131 #1 0x03f9d20f in ?? () from /usr/lib/libdbusmenu-glib.so.3 #2 0x00d8b372 in g_closure_invoke (closure=0xaa7399f8, return_value=0x0, n_param_values=3, param_values=0x939fe88, invocation_hint=0xbfd51c90) at /build/buildd/glib2.0-2.28.3/./gobject/gclosure.c:767 #3 0x00d9e048 in signal_emit_unlocked_R (node=0x94f3738, detail=0, instance=0x943e6a8, emission_return=0x0, instance_and_params=0x939fe88) at /build/buildd/glib2.0-2.28.3/./gobject/gsignal.c:3252 #4 0x00da6b29 in g_signal_emit_valist (instance=0x943e6a8, signal_id=223, detail=0, var_args=0xbfd51e54 "\001") at /build/buildd/glib2.0-2.28.3/./gobject/gsignal.c:2983 #5 0x00da6cc2 in g_signal_emit (instance=0x943e6a8, signal_id=223, detail=0) at /build/buildd/glib2.0-2.28.3/./gobject/gsignal.c:3040 #6 0x03f9b41b in dbusmenu_menuitem_property_set_variant () from /usr/lib/libdbusmenu-glib.so.3 #7 0x03f9c110 in dbusmenu_menuitem_property_remove () from /usr/lib/libdbusmenu-glib.so.3 #8 0x03fa2b6a in ?? () from /usr/lib/libdbusmenu-glib.so.3 #9 0x03fa2693 in ?? () from /usr/lib/libdbusmenu-glib.so.3 #10 0x005accbf in g_simple_async_result_complete (simple=0x9720820) at /build/buildd/glib2.0-2.28.3/./gio/gsimpleasyncresult.c:747 #11 0x00602cc1 in reply_cb (connection=0x93fe010, res=0x9720858, user_data=0x9720820) at /build/buildd/glib2.0-2.28.3/./gio/gdbusproxy.c:2158 #12 0x005accbf in g_simple_async_result_complete (simple=0x9720858) at /build/buildd/glib2.0-2.28.3/./gio/gsimpleasyncresult.c:747 #13 0x005f7d03 in g_dbus_connection_call_done (source=0x93fe010, result=0x9720890, user_data=0x9720d30) at /build/buildd/glib2.0-2.28.3/./gio/gdbusconnection.c:4998 #14 0x005accbf in g_simple_async_result_complete (simple=0x9720890) at /build/buildd/glib2.0-2.28.3/./gio/gsimpleasyncresult.c:747 #15 0x005acddd in complete_in_idle_cb (data=0x9720890) at /build/buildd/glib2.0-2.28.3/./gio/gsimpleasyncresult.c:757 #16 0x00c2a311 in g_idle_dispatch (source=0xaa7b4900, callback=0x5acdc0 , user_data=0x9720890) at /build/buildd/glib2.0-2.28.3/./glib/gmain.c:4545 #17 0x00c2eaa8 in g_main_dispatch (context=0x93a21c0) at /build/buildd/glib2.0-2.28.3/./glib/gmain.c:2440 #18 g_main_context_dispatch (context=0x93a21c0) at /build/buildd/glib2.0-2.28.3/./glib/gmain.c:3013 #19 0x00c2f270 in g_main_context_iterate (context=0x93a21c0, block=12843040, dispatch=1, self=) at /build/buildd/glib2.0-2.28.3/./glib/gmain.c:3091 #20 0x00c2f92b in g_main_loop_run (loop=0x9505e08) No. 7 catches my attention. >>dbusmenu_menuitem_property_remove () from /usr/lib/libdbusmenu-glib.so.3 I have found that through my ordinary trace on that same property update callback, updates for custom properties (like volume level and mute status) are not of the type that I pack them in on the other side of the bus.