diff --git a/shell/rb-shell-player.c b/shell/rb-shell-player.c
index d039c12..d323ad8 100644
--- a/shell/rb-shell-player.c
+++ b/shell/rb-shell-player.c
@@ -3750,9 +3750,19 @@ rb_shell_player_playing_changed_cb (RBShellPlayer *player,
 	action = gtk_action_group_get_action (player->priv->actiongroup,
 					      "ControlPlay");
 	if (playing) {
-		tooltip = g_strdup (_("Stop playback"));
+                if(rb_source_can_pause (player->priv->source)) {
+                        tooltip = g_strdup(_("Pause playback"));
+                        gtk_action_set_stock_id (action, GTK_STOCK_MEDIA_PAUSE);
+                        gtk_action_set_label (action, N_("_Pause"));
+                } else {
+		        tooltip = g_strdup (_("Stop playback"));
+                        gtk_action_set_stock_id (action, GTK_STOCK_MEDIA_STOP);
+                        gtk_action_set_label (action, N_("_Stop"));
+                }
 	} else {
 		tooltip = g_strdup (_("Start playback"));
+                gtk_action_set_stock_id (action, GTK_STOCK_MEDIA_PLAY);
+                gtk_action_set_label (action, N_("_Play"));
 	}
 	g_object_set (action, "tooltip", tooltip, NULL);
 	g_free (tooltip);
