Index: camel/camel-exchange-journal.c
===================================================================
--- camel/camel-exchange-journal.c	(revision 1709)
+++ camel/camel-exchange-journal.c	(working copy)
@@ -38,6 +38,7 @@
 #include <camel/camel-file-utils.h>
 #include <camel/camel-folder-summary.h>
 #include <camel/camel-data-cache.h>
+#include <camel/camel-string-utils.h>
 
 #include "camel-exchange-journal.h"
 #include "camel-exchange-store.h"
@@ -292,7 +293,7 @@
 	camel_object_unref (message);
 
 	if (uid != NULL && real) {
-		real->uid = g_strdup (uid);
+		real->uid = camel_pstring_strdup (uid);
 		exchange_message_info_dup_to ((CamelMessageInfoBase *) real, (CamelMessageInfoBase *) info);
 		camel_folder_summary_add (folder->summary, real);
 		/* FIXME: should a folder_changed event be triggered? */
@@ -356,7 +357,7 @@
 		if (!camel_exception_is_set (&lex)) {
 			real = camel_folder_summary_info_new_from_message (folder->summary, message);
 			camel_object_unref (message);
-			real->uid = g_strdup ((char *)xuids->pdata[0]);
+			real->uid = camel_pstring_strdup ((char *)xuids->pdata[0]);
 			/* Transfer flags */
 			exchange_message_info_dup_to ((CamelMessageInfoBase *) real, (CamelMessageInfoBase *) info);
 			camel_folder_summary_add (folder->summary, real);
@@ -463,7 +464,7 @@
 	camel_object_unref (cache);
 
 	info = camel_folder_summary_info_new_from_message (folder->summary, message);
-	info->uid = g_strdup (uid);
+	info->uid = camel_pstring_strdup (uid);
 
 	exchange_message_info_dup_to ((CamelMessageInfoBase *) info, (CamelMessageInfoBase *) mi);
 
Index: camel/camel-exchange-folder.c
===================================================================
--- camel/camel-exchange-folder.c	(revision 1709)
+++ camel/camel-exchange-folder.c	(working copy)
@@ -46,6 +46,7 @@
 #include <camel/camel-stream-filter.h>
 #include <camel/camel-stream-mem.h>
 #include <camel/camel-folder-summary.h>
+#include <camel/camel-string-utils.h>
 
 static CamelOfflineFolderClass *parent_class = NULL;
 
@@ -787,7 +788,7 @@
 	}
 	camel_object_unref (CAMEL_OBJECT (msg));
 
-	info->uid = g_strdup (uid);
+	info->uid = camel_pstring_strdup (uid);
 	einfo->info.flags = flags;
 	einfo->info.size = size;
 	einfo->href = g_strdup (href);
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 1709)
+++ ChangeLog	(working copy)
@@ -1,3 +1,13 @@
+2008-07-31  Bharath Acharya  <abharath@novell.com>
+
+	** Fix for bug #543427
+
+	* camel/camel-exchange-folder.c:
+	(camel_exchange_folder_add_message):
+	* camel/camel-exchange-journal.c: (exchange_entry_play_append),
+	(exchange_entry_play_transfer), (update_cache): 
+	Use camel_pstring_strdup. The free'ing is handled by message_info_free.
+
 2008-07-30  Milan Crha  <mcrha@redhat.com>
 
 	** Fix for bug #500389
