Index: camel/camel-exchange-summary.c
===================================================================
--- camel/camel-exchange-summary.c	(revision 1556)
+++ camel/camel-exchange-summary.c	(working copy)
@@ -50,6 +50,9 @@
 					    CamelMessageInfo *info);
 static CamelMessageInfo *message_info_new_from_header  (CamelFolderSummary *summary,
 							struct _camel_header_raw *h);
+
+static void message_info_free (CamelFolderSummary *summary, CamelMessageInfo *info);
+
 static gboolean check_for_trash (CamelFolder *folder);
 static gboolean expunge_mail (CamelFolder *folder, CamelMessageInfo *info);
 
@@ -71,7 +74,8 @@
 	camel_folder_summary_class->message_info_load = message_info_load;
 	camel_folder_summary_class->message_info_save = message_info_save;
 	camel_folder_summary_class->message_info_new_from_header = message_info_new_from_header;
-
+	camel_folder_summary_class->message_info_free = message_info_free;
+	
 	camel_folder_summary_class->info_set_flags = info_set_flags;
 	camel_folder_summary_class->info_set_user_tag = info_set_user_tag;
 }
@@ -263,6 +267,22 @@
 	return info;
 }
 
+static void
+message_info_free (CamelFolderSummary *summary, CamelMessageInfo *info)
+{
+	CamelExchangeMessageInfo *einfo;
+
+	einfo = (CamelExchangeMessageInfo *)info;
+
+	g_free (einfo->href);
+	g_free (einfo->thread_index);
+
+	einfo->href = NULL;
+	einfo->thread_index = NULL;
+
+	CAMEL_FOLDER_SUMMARY_CLASS (parent_class)->message_info_free (summary, info);
+}
+
 static gboolean
 check_for_trash (CamelFolder *folder)
 {
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 1557)
+++ ChangeLog	(working copy)
@@ -1,3 +1,10 @@
+2008-02-13  Milan Crha  <mcrha@redhat.com>
+
+	** Part of fix for bug #515744
+
+	* camel/camel-exchange-summary.c: (exchange_summary_class_init),
+	(message_info_free): Free our message info members properly.
+
 2008-02-07  Milan Crha  <mcrha@redhat.com>
 
 	** Fix for bug #420503
