Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2802
diff -u -p -w -r1.2802 ChangeLog
--- ChangeLog	25 Aug 2005 10:26:27 -0000	1.2802
+++ ChangeLog	27 Aug 2005 11:07:42 -0000
@@ -1,3 +1,13 @@
+2005-08-27  P. S. Chakravarthi <pchakravarthi@novell.com>
+
+	Fixes #269685
+	* gui/alarm-notify/alarm-queue.c: 
+	(query_objects_changed_cb): update the CompQueuedAlarms
+	structure with the modified component whenever there is 
+	a modification in the component.
+	(set_comp_queued_alarms): added this function to facilitate
+	above change.
+
 2005-08-24  Chenthill Palanisamy  <pchenthill@novell.com>
 
 	Fixes #313705
Index: gui/alarm-notify/alarm-queue.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/alarm-notify/alarm-queue.c,v
retrieving revision 1.87
diff -u -p -w -r1.87 alarm-queue.c
--- gui/alarm-notify/alarm-queue.c	16 May 2005 06:12:59 -0000	1.87
+++ gui/alarm-notify/alarm-queue.c	27 Aug 2005 11:07:43 -0000
@@ -488,6 +488,14 @@ lookup_comp_queued_alarms (ClientAlarms 
 	return g_hash_table_lookup (ca->uid_alarms_hash, uid);
 }
 
+/* Sets a component's queued alarm structure by its uid in a client alarms structure */
+static void
+set_comp_queued_alarms (ClientAlarms *ca, const char *uid, CompQueuedAlarms *cqa)
+{
+	g_hash_table_insert (ca->uid_alarms_hash, uid, cqa);
+	return;
+}
+
 static void
 remove_alarms (CompQueuedAlarms *cqa, gboolean free_object)
 {
@@ -544,7 +552,7 @@ query_objects_changed_cb (ECal *client, 
 	ECalComponentAlarms *alarms;
 	gboolean found;
 	icaltimezone *zone;
-	CompQueuedAlarms *cqa;
+	CompQueuedAlarms *cqa = NULL;
 	GList *l;
 
 	ca = data;
@@ -562,7 +570,9 @@ query_objects_changed_cb (ECal *client, 
 	for (l = objects; l != NULL; l = l->next) {
 		const char *uid;
 		GSList *sl;
+		ECalComponent *comp = e_cal_component_new ();
 
+		e_cal_component_set_icalcomponent (comp, l->data);
 		uid = icalcomponent_get_uid (l->data);
 		found = e_cal_get_alarms_for_object (ca->client, uid, from, day_end, &alarms);
 
@@ -584,6 +594,11 @@ query_objects_changed_cb (ECal *client, 
 		if (alarms == NULL || alarms->alarms == NULL) {
 			if (alarms)
 				e_cal_component_alarms_free (alarms);
+			if (cqa && cqa->alarms) {
+				/* Update the comp with alarm and the cqa structure with the comp*/
+				cqa->alarms->comp = e_cal_component_clone (comp);
+				set_comp_queued_alarms (ca, uid, cqa);
+			}
 			continue;
 		}
 
