diff -urNp ../gnome-panel-2.5.2/gnome-panel/panel-menu-button.c ./gnome-panel/panel-menu-button.c
--- ../gnome-panel-2.5.2/gnome-panel/panel-menu-button.c	2003-12-16 13:22:57.000000000 +1300
+++ ./gnome-panel/panel-menu-button.c	2003-12-16 13:46:42.000000000 +1300
@@ -39,6 +39,7 @@
 #include "menu-util.h"
 #include "menu.h"
 #include "quick-desktop-reader.h"
+#include "egg-screen-exec.h"
 
 #define PANEL_MENU_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PANEL_TYPE_MENU_BUTTON, PanelMenuButtonPrivate))
 
@@ -609,6 +610,7 @@ panel_menu_button_load (const char  *men
 	button->priv->applet_id = g_strdup (info->id);
 
 	panel_applet_add_callback (info, "help", GTK_STOCK_HELP, _("_Help"));
+        panel_applet_add_callback (info, "browse", PANEL_STOCK_APPLICATIONS, _("_Browse Applications"));
 
 	panel_widget_set_applet_expandable (panel, GTK_WIDGET (button), FALSE, TRUE);
 	panel_widget_set_applet_size_constrained (panel, GTK_WIDGET (button), TRUE);
@@ -836,7 +838,28 @@ panel_menu_button_create (PanelToplevel 
 	/* frees id */
 	panel_profile_add_to_list (PANEL_GCONF_OBJECTS, id);
 }
-			  
+		
+static void
+panel_menu_button_browse_applications (GtkWidget *widget)
+{
+        GdkScreen *screen;
+        char      **argv;
+                                                                                                                                                              
+        argv = g_new0 (char *, 3);
+        argv [0] = g_strdup ("nautilus");
+        argv [1] = g_strdup ("applications:///");
+                                                                                                                                                              
+        screen = gtk_widget_get_screen (widget);
+        if (egg_screen_execute_async (screen, g_get_home_dir (), 2, argv) < 0)
+                panel_error_dialog (screen,
+                                    "cannot_exec_nautilus",
+                                    _("Cannot execute '%s'"),
+                                    _("%s - command not found"),
+                                    _("Applications"),
+                                    argv [0]);
+        g_strfreev (argv);
+}
+	  
 void
 panel_menu_button_invoke_menu (PanelMenuButton *button,
 			       const char   *callback_name)
@@ -846,12 +869,14 @@ panel_menu_button_invoke_menu (PanelMenu
 	g_return_if_fail (PANEL_IS_MENU_BUTTON (button));
 	g_return_if_fail (callback_name != NULL);
 
-	if (strcmp (callback_name, "help"))
+        if (strcmp (callback_name, "help") == 0) {
+                screen = gtk_widget_get_screen (GTK_WIDGET (button));
+                panel_show_help (screen, "wgospanel.xml", "gospanel-37");
+        } else if (strcmp (callback_name, "browse") ==0) {
+                panel_menu_button_browse_applications (GTK_WIDGET (button));
+        }
+        else
 		return;
-
-	screen = gtk_widget_get_screen (GTK_WIDGET (button));
-
-	panel_show_help (screen, "wgospanel.xml", "gospanel-37");
 }
 
 void
