http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=425811 If you create a directory called say launcher in your home directory and then run the panel from that directory all the launcher plugins die. Normally (without the launcher dir) you get: DBG[panel-item-manager.c:358] update_plugin_list(): + class "launcher": name=La uncher, comment=Program launcher with optional menu, icon=gnome-fs-executable, e xternal=0, path=/usr/lib/xfce4/panel-plugins/liblauncher.so With the launcher dir you get: DBG[panel-item-manager.c:358] update_plugin_list(): + class "launcher": name=La uncher, comment=Program launcher with optional menu, icon=gnome-fs-executable, e xternal=0, path=launcher Note path is different. This is because of the g_file_test in new_panel_class_from_desktop_file in panel/panel-item-manager.c: else if ((value = xfce_rc_read_entry (rc, "X-XFCE-Module", NULL))) { if (g_file_test (value, G_FILE_TEST_EXISTS)) So when you have a desktop file with: X-XFCE-Module=launcher X-XFCE-Module-Path=/usr/lib/xfce4/panel-plugins Then it won't even consider the module path. Possible ways to fix this: 1. move the parsing of X-XFCE-Module-Path up before the g_file_test (i.e. swap the if and else) 2. check for a leading / in X-XFCE-Module before the g_file_test You might even want to do both. I will attach the trivial patch to do the second which I've tested and works as expected.
Created attachment 1154 Patch to check for leading / in X-XFCE-Module This is the patch I mentioned which works as a workaround.
I cleaned up the module functions and discovered this bug yesterday, so a fix will be committed within a couple of minutes.