Index: plugins/itip-formatter/ChangeLog
===================================================================
--- plugins/itip-formatter/ChangeLog	(revision 35684)
+++ plugins/itip-formatter/ChangeLog	(working copy)
@@ -1,3 +1,10 @@
+2008-06-27  Milan Crha  <mcrha@redhat.com>
+
+	** Part of fix for bug #313225
+
+	* itip-formatter.c: (format_itip): Set the user flag '$has_cal'
+	on the message when formatting a calendar attachment.
+
 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 35684)
+++ plugins/itip-formatter/itip-formatter.c	(working copy)
@@ -2242,6 +2242,11 @@ format_itip (EPlugin *ep, EMFormatHookTa
 
 	classid = g_strdup_printf("itip:///%s", ((EMFormat *) target->format)->part_id->str);
 
+	/* mark message as containing calendar, thus it will show the icon in message list now on */
+	if (target->format->uid && target->format->folder &&
+	    !camel_folder_get_message_user_flag (target->format->folder, target->format->uid, "$has_cal"))
+		camel_folder_set_message_user_flag (target->format->folder, target->format->uid, "$has_cal", TRUE);
+
 	puri = (struct _itip_puri *)em_format_add_puri(target->format, sizeof(struct _itip_puri), classid, target->part, itip_attachment_frame);
 
 	pobj = em_format_html_add_pobject ((EMFormatHTML *) target->format, sizeof (EMFormatHTMLPObject), classid, target->part, format_itip_object);
Index: mail/ChangeLog
===================================================================
--- mail/ChangeLog	(revision 35684)
+++ mail/ChangeLog	(working copy)
@@ -1,3 +1,11 @@
+2008-06-27  Milan Crha  <mcrha@redhat.com>
+
+	** Fix for bug #313225
+
+	* message-list.c: (struct states_pixmaps), (ml_tree_value_at),
+	(message_list_create_extras): Show meeting icon in 'Attachment'
+	column on messages with '$has_cal' user flag set.
+
 2008-06-26  Milan Crha  <mcrha@redhat.com>
 
 	** Fix for bug #540160
Index: mail/message-list.c
===================================================================
--- mail/message-list.c	(revision 35684)
+++ mail/message-list.c	(working copy)
@@ -234,6 +234,7 @@ static struct {
 	{ "stock_score-highest",               NULL },
 	{ "stock_mail-flag-for-followup",      NULL },
 	{ "stock_mail-flag-for-followup-done", NULL },
+	{ "stock_new-meeting",                 NULL }
 };
 
 /* FIXME: junk prefs */
@@ -1339,6 +1340,8 @@ ml_tree_value_at (ETreeModel *etm, ETree
 		str = camel_message_info_user_tag(msg_info, "follow-up");
 		return (void *)(str ? str : "");
 	case COL_ATTACHMENT:
+		if (camel_message_info_user_flag (msg_info, "$has_cal"))
+			return GINT_TO_POINTER (2);
 		return GINT_TO_POINTER ((camel_message_info_flags(msg_info) & CAMEL_MESSAGE_ATTACHMENTS) != 0);
 	case COL_FROM:
 		str = camel_message_info_from (msg_info);
@@ -1733,8 +1736,9 @@ message_list_create_extras (void)
 
 	for (i = 0; i < 2; i++)
 		images [i] = states_pixmaps [i + 6].pixbuf;
+	images [2] = states_pixmaps [18].pixbuf;
 
-	e_table_extras_add_cell (extras, "render_attachment", e_cell_toggle_new (0, 2, images));
+	e_table_extras_add_cell (extras, "render_attachment", e_cell_toggle_new (0, 3, images));
 
 	images [1] = states_pixmaps [8].pixbuf;
 	e_table_extras_add_cell (extras, "render_flagged", e_cell_toggle_new (0, 2, images));
