Index: plugins/itip-formatter/ChangeLog
===================================================================
--- plugins/itip-formatter/ChangeLog	(revision 35682)
+++ plugins/itip-formatter/ChangeLog	(working copy)
@@ -1,3 +1,10 @@
+2008-06-25  Milan Crha  <mcrha@redhat.com>
+
+	** Fix for bug #272932
+
+	* itip-formatter.c: (update_item):
+	Remove instance/component from the calendar on Decline.
+
 2008-05-29  Milan Crha  <mcrha@redhat.com>
 
 	** Fix for bug #535459
Index: plugins/itip-formatter/itip-formatter.c
===================================================================
--- plugins/itip-formatter/itip-formatter.c	(revision 35682)
+++ plugins/itip-formatter/itip-formatter.c	(working copy)
@@ -999,13 +999,28 @@ update_item (struct _itip_puri *pitip, I
 		e_cal_component_set_attachment_list (clone_comp, new_attachments);
 	}
 
-	if (!e_cal_receive_objects (pitip->current_ecal, pitip->top_level, &error)) {
+
+	if (response == ITIP_VIEW_RESPONSE_DECLINE) {
+		const char *uid;
+
+		e_cal_component_get_uid (clone_comp, &uid);
+		if (e_cal_component_is_instance (clone_comp)) {
+			char *rid;
+
+			rid = e_cal_component_get_recurid_as_string (clone_comp);
+			e_cal_remove_object_with_mod (pitip->current_ecal, uid, rid, CALOBJ_MOD_THIS, NULL);
+			g_free (rid);
+		} else
+			e_cal_remove_object (pitip->current_ecal, uid, NULL);
+	} else if (!e_cal_receive_objects (pitip->current_ecal, pitip->top_level, &error)) {
 		itip_view_add_lower_info_item_printf (ITIP_VIEW (pitip->view), ITIP_VIEW_INFO_ITEM_TYPE_INFO,
 						      _("Unable to send item to calendar '%s'.  %s"),
 						      e_source_peek_name (source), error->message);
 		g_error_free (error);
 		result = FALSE;
-	} else {
+	}
+
+	if (result) {
 		itip_view_set_source_list (ITIP_VIEW (pitip->view), NULL);
 
 		itip_view_clear_lower_info_items (ITIP_VIEW (pitip->view));
