diff -urN evolution-2.4.1.orig/mail/Makefile.am evolution-2.4.1/mail/Makefile.am
--- evolution-2.4.1.orig/mail/Makefile.am	2005-08-18 06:36:34.000000000 +0200
+++ evolution-2.4.1/mail/Makefile.am	2005-11-11 13:45:40.000000000 +0100
@@ -232,7 +232,7 @@
 	$(REGEX_LIBS)
 
 libevolution_mail_la_LDFLAGS =				\
-	-avoid-version -module $(NO_UNDEFINED)
+	-avoid-version -module $(NO_UNDEFINED) -lcompface
 
 libevolution_mail_la_DEPENDENCIES = em-filter-i18n.h
 
diff -urN evolution-2.4.1.orig/mail/Makefile.in evolution-2.4.1/mail/Makefile.in
--- evolution-2.4.1.orig/mail/Makefile.in	2005-10-03 17:37:24.000000000 +0200
+++ evolution-2.4.1/mail/Makefile.in	2005-11-11 13:39:26.000000000 +0100
@@ -585,7 +585,7 @@
 
 
 libevolution_mail_la_LDFLAGS = \
-	-avoid-version -module $(NO_UNDEFINED)
+	-avoid-version -module $(NO_UNDEFINED) -lcompface
 
 
 libevolution_mail_la_DEPENDENCIES = em-filter-i18n.h
diff -urN evolution-2.4.1.orig/mail/em-format-html.c evolution-2.4.1/mail/em-format-html.c
--- evolution-2.4.1.orig/mail/em-format-html.c	2005-08-26 03:52:55.000000000 +0200
+++ evolution-2.4.1/mail/em-format-html.c	2005-11-11 13:39:26.000000000 +0100
@@ -35,6 +35,7 @@
 #include <libedataserver/e-util.h>	/* for e_utf8_strftime, what about e_time_format_time? */
 #include <libedataserver/e-time-utils.h>
 #include "e-util/e-icon-factory.h"
+#include "e-util/e-mktemp.h"
 
 #include <gtkhtml/gtkhtml.h>
 #include <gtkhtml/gtkhtml-embedded.h>
@@ -70,6 +71,8 @@
 #include "em-html-stream.h"
 #include "em-utils.h"
 
+#include <compface.h>
+#include <string.h>
 #define d(x)
 
 #define EFH_TABLE_OPEN "<table>"
@@ -331,6 +334,31 @@
 	return part;
 }
 
+CamelMimePart *
+em_format_html_buffer_part(EMFormatHTML *efh, const char *mime_type, const char *buf, size_t len)
+{
+	CamelMimePart *part;
+	CamelStream *stream;
+	CamelDataWrapper *dw;
+
+	stream = camel_stream_mem_new_with_buffer(buf, len);
+	if (stream == NULL)
+		return NULL;
+
+	part = camel_mime_part_new();
+	dw = camel_data_wrapper_new();
+	camel_data_wrapper_construct_from_stream(dw, stream);
+	camel_object_unref(stream);
+	if (mime_type)
+		camel_data_wrapper_set_mime_type(dw, mime_type);
+	part = camel_mime_part_new();
+	camel_medium_set_content_object((CamelMedium *)part, dw);
+	camel_object_unref(dw);
+	/* camel_mime_part_set_filename(part, name); */
+
+	return part;
+}
+
 /* all this api is a pain in the bum ... */
 
 EMFormatHTMLPObject *
@@ -1659,6 +1687,7 @@
 	CamelContentType *ct;
 	struct _camel_header_raw *header;
 	int rupert = FALSE;
+	CamelMimePart * xfacepart = NULL;
 			
 	ct = camel_mime_part_get_content_type((CamelMimePart *)part);
 	charset = camel_content_type_param (ct, "charset");
@@ -1683,10 +1712,11 @@
 		
 		while (h->next) {
 			int mailer;
+			int xface;
 
 			header = ((CamelMimePart *)part)->headers;
 			mailer = !g_ascii_strcasecmp (h->name, "X-Evolution-Mailer");
-			
+			xface  = !g_ascii_strcasecmp (h->name, "X-Face");
 			while (header) {
 				if (!mailer_shown && mailer && (!g_ascii_strcasecmp (header->name, "X-Mailer") ||
 					       !g_ascii_strcasecmp (header->name, "User-Agent") ||
@@ -1700,6 +1730,15 @@
 					efh_format_header (emf, stream, part, &xmailer, h->flags, charset);
 					if (strstr(header->value, "Evolution"))
 						rupert = TRUE;
+				} else if (xface && (!g_ascii_strcasecmp (header->name, "X-Face") ||
+						     !g_ascii_strcasecmp (header->name, "Face"))) {
+					char buf[2048];
+
+					strncpy(buf, header->value, sizeof(buf));
+					if(uncompface(buf) < 0) return;
+					WriteFacexb(buf, 1);
+
+					xfacepart = em_format_html_buffer_part((EMFormatHTML *)emf, "image/x-bmp", buf, strlen(buf) );
 				} else if (!g_ascii_strcasecmp (header->name, h->name)) {
 					efh_format_header(emf, stream, part, header, h->flags, charset);
 				}
@@ -1725,6 +1764,19 @@
 			}
 			g_free(classid);
 		}
+		if (xfacepart) {
+			char * classid;
+			const char * msgid;
+			
+			msgid = camel_mime_message_get_message_id( (CamelMimeMessage *)part );
+			classid = g_strdup_printf("xface://%s", msgid);
+
+			camel_stream_printf(stream, "<td align=\"right\" valign=\"top\"><img width=48 height=48 border=1 src=\"%s\"></td>", classid);
+			em_format_add_puri(emf, sizeof(EMFormatPURI), classid,
+					   xfacepart, efh_write_image);
+			camel_object_unref(xfacepart);
+			g_free(classid);
+		}
 		camel_stream_printf (stream, "</tr></table>\n</font>\n");
 	}
 }
