diff --git a/modules/other/gail/ChangeLog b/modules/other/gail/ChangeLog
index 08f97adb43..75e0472157 100644
--- a/modules/other/gail/ChangeLog
+++ b/modules/other/gail/ChangeLog
@@ -1,3 +1,9 @@
+2008-08-21 Li Yuan
+
+ * gailtreeview.c: (model_row_deleted):
+ Bug #548782. Emit children-changed::remove signal when a row is
+ deleted in gtktreeview.
+
2008-08-15 Michael Natterer
* gailbooleancell.c
diff --git a/modules/other/gail/gailtreeview.c b/modules/other/gail/gailtreeview.c
index 9b121c12fc..b6a9af6fd4 100644
--- a/modules/other/gail/gailtreeview.c
+++ b/modules/other/gail/gailtreeview.c
@@ -2920,7 +2920,7 @@ model_row_deleted (GtkTreeModel *tree_model,
GtkTreePath *path_copy;
AtkObject *atk_obj;
GailTreeView *gailview;
- gint row;
+ gint row, col, n_cols;
tree_view = (GtkTreeView *)user_data;
atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
@@ -2959,6 +2959,17 @@ model_row_deleted (GtkTreeModel *tree_model,
g_signal_emit_by_name (atk_obj, "row_deleted", row,
gailview->n_children_deleted + 1);
gailview->n_children_deleted = 0;
+
+ /* Generate children-changed signals */
+ n_cols = get_n_actual_columns (tree_view);
+ for (col = 0; col < n_cols; col++)
+ {
+ /*
+ * Pass NULL as the child object, 4th argument.
+ */
+ g_signal_emit_by_name (atk_obj, "children_changed::remove",
+ ((row * n_cols) + col), NULL, NULL);
+ }
}
/*