Index: gnome-panel/panel-toplevel.c
===================================================================
--- gnome-panel/panel-toplevel.c	(revision 10936)
+++ gnome-panel/panel-toplevel.c	(working copy)
@@ -489,6 +489,7 @@
 			  GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK,
 			  NULL, cursor, time_);
 	gdk_cursor_unref (cursor);
+	
 
 	if (grab_keyboard)
 		gdk_keyboard_grab (widget->window, FALSE, time_);
@@ -3198,12 +3199,37 @@
 				   GdkEventButton *event)
 {
 	PanelToplevel *toplevel;
+	GConfClient *client;
+        GError *err = NULL;
+        char *modifier_str = NULL;
+        guint modifier_keysym;
+        guint modifier_keymask;
 	GtkWidget     *event_widget;
 
 	g_return_val_if_fail (PANEL_IS_TOPLEVEL (widget), FALSE);
 
 	toplevel = PANEL_TOPLEVEL (widget);
 
+        /* Get the modifier from metacity */
+	client = panel_gconf_get_client ();
+	modifier_str = gconf_client_get_string (client, "/apps/metacity/general/mouse_button_modifier",
+						&err);
+	if (err) {
+		g_error_free (err);
+		/* FIXME: should we die in this case? */
+	} 
+	
+	if (modifier_str) {
+		gtk_accelerator_parse (modifier_str, &modifier_keysym, &modifier_keymask);
+		g_free(modifier_str);
+	} 
+	else {
+		modifier_keymask = GDK_MOD1_MASK;
+	}
+
+	if ((event->state & gtk_accelerator_get_default_mod_mask ()) != modifier_keymask)
+	    return FALSE;
+
 	if (event->button != 1 && event->button != 2)
 		return FALSE;
 
