rem: gtk_tree_path_free (playlist->_priv->current); playlist->_priv->current = gtk_tree_path_new_from_indices (i, -1); g_signal_emit (G_OBJECT (playlist), totem_playlist_table_signals[CHANGED], 0, NULL);
add: path = gtk_tree_path_new_from_indices (i, -1); if (gtk_tree_path_compare (path, playlist->_priv->current) == 0) { gtk_tree_path_free (path); } else { gtk_tree_path_free (playlist->_priv->current); playlist->_priv->current = path; g_signal_emit (G_OBJECT (playlist), totem_playlist_table_signals[CHANGED], 0, NULL); }
context: totem_playlist_set_reorderable (TotemPlaylist *playlist, gboolean set){	guint num_items, i;	gtk_tree_view_set_reorderable		(GTK_TREE_VIEW (playlist->_priv->treeview), set);	if (set != FALSE)		return;	num_items = PL_LEN;	for (i = 0; i < num_items; i++)	{		GtkTreeIter iter;		char *index;		GdkPixbuf *pixbuf;		index = g_strdup_printf ("%d", i);		if (gtk_tree_model_get_iter_from_string				(playlist->_priv->model,				 &iter, index) == FALSE)		{			g_free (index);			continue;		}		g_free (index);		gtk_tree_model_get (playlist->_priv->model, &iter,				PIX_COL, &pixbuf, -1);		if (pixbuf == NULL)			continue;		gdk_pixbuf_unref (pixbuf);		gtk_tree_path_free (playlist->_priv->current);		playlist->_priv->current = gtk_tree_path_new_from_indices (i, -1);		g_signal_emit (G_OBJECT (playlist),				totem_playlist_table_signals[CHANGED],				0, NULL);		break;	}}