diff --git a/plugins/publish-calendar/publish-format-fb.c b/plugins/publish-calendar/publish-format-fb.c
index b818a58..b5895ae 100644
--- a/plugins/publish-calendar/publish-format-fb.c
+++ b/plugins/publish-calendar/publish-format-fb.c
@@ -116,8 +116,8 @@ write_calendar (const gchar *uid,
 		GSList *iter;
 
 		for (iter = objects; iter; iter = iter->next) {
-			ECalComponent *comp = objects->data;
-			icalcomponent *icalcomp = e_cal_component_get_icalcomponent (comp);
+			ECalComponent *comp = iter->data;
+			icalcomponent *icalcomp = icalcomponent_new_clone (e_cal_component_get_icalcomponent (comp));
 			icalcomponent_add_component (top_level, icalcomp);
 		}
 
diff --git a/plugins/publish-calendar/publish-format-ical.c b/plugins/publish-calendar/publish-format-ical.c
index 82b3898..4d110ae 100644
--- a/plugins/publish-calendar/publish-format-ical.c
+++ b/plugins/publish-calendar/publish-format-ical.c
@@ -110,7 +110,7 @@ write_calendar (const gchar *uid,
 		tdata.client = client;
 
 		for (iter = objects; iter; iter = iter->next) {
-			icalcomponent *icalcomp = objects->data;
+			icalcomponent *icalcomp = icalcomponent_new_clone (iter->data);
 			icalcomponent_foreach_tzid (icalcomp, insert_tz_comps, &tdata);
 			icalcomponent_add_component (top_level, icalcomp);
 		}
diff --git a/plugins/save-calendar/ical-format.c b/plugins/save-calendar/ical-format.c
index 1be8ff1..bf0a8db 100644
--- a/plugins/save-calendar/ical-format.c
+++ b/plugins/save-calendar/ical-format.c
@@ -128,7 +128,7 @@ do_save_calendar_ical (FormatHandler *handler,
 		tdata.client = source_client;
 
 		for (iter = objects; iter; iter = iter->next) {
-			icalcomponent *icalcomp = iter->data;
+			icalcomponent *icalcomp = icalcomponent_new_clone (iter->data);
 
 			icalcomponent_foreach_tzid (icalcomp, insert_tz_comps, &tdata);
 			icalcomponent_add_component (top_level, icalcomp);
