--- control-center-2.15.92/gnome-settings-daemon/actions/acme.h.fix-media-keys	2006-08-24 20:09:15.000000000 -0400
+++ control-center-2.15.92/gnome-settings-daemon/actions/acme.h	2006-08-24 20:09:31.000000000 -0400
@@ -38,11 +38,6 @@
 	SCREENSAVER_KEY,
 	HELP_KEY,
 	WWW_KEY,
-	PLAY_KEY,
-	PAUSE_KEY,
-	STOP_KEY,
-	PREVIOUS_KEY,
-	NEXT_KEY,
 	HANDLED_KEYS
 };
 
@@ -69,11 +64,6 @@
 	{ SCREENSAVER_KEY, GCONF_BINDING_DIR "/screensaver", NULL },
 	{ HELP_KEY, GCONF_BINDING_DIR "/help", NULL },
 	{ WWW_KEY, GCONF_BINDING_DIR "/www", NULL },
-	{ PLAY_KEY, GCONF_BINDING_DIR "/play", NULL },
-	{ PAUSE_KEY, GCONF_BINDING_DIR "/pause", NULL },
-	{ STOP_KEY, GCONF_BINDING_DIR "/stop", NULL },
-	{ PREVIOUS_KEY, GCONF_BINDING_DIR "/previous", NULL },
-	{ NEXT_KEY, GCONF_BINDING_DIR "/next", NULL },
 };
 
 #endif /* __ACME_H__ */
--- control-center-2.15.92/gnome-settings-daemon/gnome-settings-multimedia-keys.c.fix-media-keys	2006-08-24 20:04:55.000000000 -0400
+++ control-center-2.15.92/gnome-settings-daemon/gnome-settings-multimedia-keys.c	2006-08-24 20:08:48.000000000 -0400
@@ -227,35 +227,6 @@
 	}
 }
 
-static void                                                                     
-unhookup_keysym (int keycode)
-{
-	char *command;
-
-	if (keycode <= 0)
-		return;
-
-	command = g_strdup_printf ("xmodmap -e \"keycode %d = \"", keycode);
-	g_spawn_command_line_sync (command, NULL, NULL, NULL, NULL);
-	g_free (command);
-}                                                                               
-
-static gboolean
-hookup_keysym (int keycode, const char *keysym)
-{
-	char *command;
-
-	if (keycode <= 0)
-		return TRUE;
-
-	command = g_strdup_printf ("xmodmap -e \"keycode %d = %s\"",
-				   keycode, keysym);
-	g_spawn_command_line_sync (command, NULL, NULL, NULL, NULL);
-	g_free (command);
-
-	return FALSE;
-}
-
 static gboolean
 is_valid_shortcut (const char *string)
 {
@@ -277,7 +248,7 @@
 	g_return_if_fail (entry->key != NULL);
 
 	/* Find the key that was modified */
-	for (i = 0; i < PLAY_KEY; i++)
+	for (i = 0; i < HANDLED_KEYS; i++)
 	{
 		if (strcmp (entry->key, keys[i].gconf_key) == 0)
 		{
@@ -307,73 +278,13 @@
 			{
 				g_free (tmp);
 				g_free (key);
-				break;
+				return;
 			}
 
 			grab_key (acme, key, TRUE);
 			keys[i].key = key;
 
-			g_free (tmp);
-
-			break;
-		}
-	}
-
-	if (found != FALSE)
-		return;
-
-	for (i = PLAY_KEY; i < HANDLED_KEYS; i++)
-	{
-		if (strcmp (entry->key, keys[i].gconf_key) == 0)
-		{
-			char *tmp;
-			Key *key;
-
-			if (keys[i].key != NULL)
-				unhookup_keysym (keys[i].key->keycode);
-
-			g_free (keys[i].key);
-			keys[i].key = NULL;
-
-			tmp = gconf_client_get_string (acme->conf_client,
-						       keys[i].gconf_key, NULL);
-
-			if (is_valid_shortcut (tmp) == FALSE)
-			{
-				g_free (tmp);
-				break;
-			}
-
-			key = g_new0 (Key, 1);
-			if (egg_accelerator_parse_virtual (tmp, &key->keysym, &key->keycode, &key->state) == FALSE
-			    || key->keycode == 0)
-			{
-				g_free (tmp);
-				g_free (key);
-				break;
-			}
-
-			switch (keys[i].key_type) {
-			case PLAY_KEY:
-				hookup_keysym (key->keycode, "XF86AudioPlay");
-				break;
-			case PAUSE_KEY:
-				hookup_keysym (key->keycode, "XF86AudioPause");
-				break; 
-			case STOP_KEY:
-				hookup_keysym (key->keycode, "XF86AudioStop");
-				break;
-			case PREVIOUS_KEY:
-				hookup_keysym (key->keycode, "XF86AudioPrev");
-				break;
-			case NEXT_KEY:                                                
-				hookup_keysym (key->keycode, "XF86AudioNext");
-				break;
-			}
-
-			keys[i].key = key;
-
-			g_free (tmp);
+			return;
 		}
 	}
 }
@@ -409,7 +320,7 @@
 {
 	int i;
 
-	for (i = 0; i < PLAY_KEY; i++)
+	for (i = 0; i < HANDLED_KEYS; i++)
 	{
 		char *tmp;
 		Key *key;
@@ -439,52 +350,6 @@
 
 		grab_key (acme, key, TRUE);
 	}
-
-	for (i = PLAY_KEY; i < HANDLED_KEYS; i++)
-	{
-		char *tmp;
-		Key *key;
-
-		gconf_client_notify_add (acme->conf_client,
-					 keys[i].gconf_key, update_kbd_cb,
-					 acme, NULL, NULL);
-
-		tmp = gconf_client_get_string (acme->conf_client,
-					       keys[i].gconf_key, NULL);
-		if (!is_valid_shortcut (tmp)) {
-			g_free (tmp);
-			continue;                                           
-		}                                               
-
-		key = g_new0 (Key, 1);
-		if (egg_accelerator_parse_virtual (tmp, &key->keysym, &key->keycode, &key->state) == FALSE
-		    || key->keycode == 0)
-		{                                       
-			g_free (tmp);
-			g_free (key);
-			continue;
-		}                                               
-		g_free (tmp);
-
-		keys[i].key = key;
-		switch (keys[i].key_type) {
-		case PLAY_KEY:
-			hookup_keysym (keys[i].key->keycode, "XF86AudioPlay");
-			break;
-		case PAUSE_KEY:
-			hookup_keysym (keys[i].key->keycode, "XF86AudioPause");
-			break;
-		case STOP_KEY:
-			hookup_keysym (keys[i].key->keycode, "XF86AudioStop");
-			break;
-		case PREVIOUS_KEY:
-			hookup_keysym (keys[i].key->keycode, "XF86AudioPrev");
-			break;
-		case NEXT_KEY:
-			hookup_keysym (keys[i].key->keycode, "XF86AudioNext");
-			break;
-		}
-	}
 }
 
 static gboolean
@@ -824,7 +689,7 @@
 	keycode = xev->xkey.keycode;
 	state = xev->xkey.state;
 
-	for (i = 0; i < PLAY_KEY; i++)
+	for (i = 0; i < HANDLED_KEYS; i++)
 	{
 		if (keys[i].key == NULL)
 			continue;
