Index: a11y/calendar/ea-cal-view.c
===================================================================
--- a11y/calendar/ea-cal-view.c	(revision 36667)
+++ a11y/calendar/ea-cal-view.c	(working copy)
@@ -277,7 +277,15 @@ idle_dates_changed (gpointer data)
 	}
 	g_object_notify (G_OBJECT (ea_cal_view), "accessible-name");
 	g_signal_emit_by_name (ea_cal_view, "visible_data_changed");
-	g_signal_emit_by_name (ea_cal_view, "children_changed", NULL);
+
+        /* XXX This appears to be a misuse of the "children_changed"
+         *     signal.  It should be emitted with the "add" or "remove"
+         *     detail, followed by the index of the added or removed
+         *     child and a pointer to the child AtkObject.  I don't
+         *     understand this code at all, so I don't know what the
+         *     correct signal emission should look like.  But commenting
+         *     out the call prevents the crash reported in bug #530776. */
+	/*g_signal_emit_by_name (ea_cal_view, "children_changed", NULL);*/
 #ifdef ACC_DEBUG
 	printf ("AccDebug: cal view date changed\n");
 #endif
