Index: composer/e-msg-composer.c
===================================================================
RCS file: /cvs/gnome/evolution/composer/e-msg-composer.c,v
retrieving revision 1.541
diff -u -p -r1.541 e-msg-composer.c
--- composer/e-msg-composer.c	18 Sep 2006 17:21:36 -0000	1.541
+++ composer/e-msg-composer.c	7 Nov 2006 19:45:35 -0000
@@ -615,6 +615,7 @@ build_message (EMsgComposer *composer, g
 	camel_object_unref (stream);
 	
 	camel_data_wrapper_set_mime_type_field (plain, type);
+	camel_data_wrapper_set_mime_type (plain, "text/plain; charset=utf-8");
 	camel_content_type_unref (type);
 	
 	if (p->send_html) {
@@ -5184,6 +5185,49 @@ e_msg_composer_get_message (EMsgComposer
 	}
 	
 	return build_message (composer, save_html_object_data);
+}
+
+CamelMimeMessage *
+e_msg_composer_get_message_print (EMsgComposer *composer, gboolean save_html_object_data)
+{
+	EMsgComposer *temp_composer;
+	CamelMimeMessage *msg;
+	GString *flags;
+
+	msg = build_message (composer, save_html_object_data);
+	temp_composer = e_msg_composer_new_with_message (msg);
+	camel_object_unref (msg);
+
+	/* build flags string */
+	flags = g_string_sized_new (128);
+	if (temp_composer->priv->send_html)
+		g_string_append (flags, "text/html");
+	else
+		g_string_append (flags, "text/plain");
+	if (temp_composer->priv->pgp_sign)
+		g_string_append (flags, ", pgp-sign");
+	if (temp_composer->priv->pgp_encrypt)
+		g_string_append (flags, ", pgp-encrypt");
+	if (temp_composer->priv->smime_sign)
+		g_string_append (flags, ", smime-sign");
+	if (temp_composer->priv->smime_encrypt)
+		g_string_append (flags, ", smime-encrypt");
+
+	/* override composer flags */
+	temp_composer->priv->send_html = TRUE;
+	temp_composer->priv->pgp_sign = FALSE;
+	temp_composer->priv->pgp_encrypt = FALSE;
+	temp_composer->priv->smime_sign = FALSE;
+	temp_composer->priv->smime_encrypt = FALSE;
+
+	msg = build_message (temp_composer, save_html_object_data);
+	camel_medium_set_header (CAMEL_MEDIUM (msg),
+		"X-Evolution-Format", flags->str);
+
+	e_msg_composer_delete (temp_composer);
+	g_string_free (flags, TRUE);
+
+	return msg;
 }
 
 CamelMimeMessage *
Index: composer/e-msg-composer.h
===================================================================
RCS file: /cvs/gnome/evolution/composer/e-msg-composer.h,v
retrieving revision 1.96
diff -u -p -r1.96 e-msg-composer.h
--- composer/e-msg-composer.h	7 Dec 2005 08:29:51 -0000	1.96
+++ composer/e-msg-composer.h	7 Nov 2006 19:45:35 -0000
@@ -96,6 +96,8 @@ void                     e_msg_composer_
 									  CamelMimePart     *part);
 CamelMimeMessage        *e_msg_composer_get_message                      (EMsgComposer      *composer,
 									  gboolean           save_html_object_data);
+CamelMimeMessage        *e_msg_composer_get_message_print                (EMsgComposer      *composer,
+                                                                          gboolean           save_html_object_data);
 CamelMimeMessage        *e_msg_composer_get_message_draft                (EMsgComposer      *composer);
 void                     e_msg_composer_show_sig_file                    (EMsgComposer      *composer);
 gboolean                 e_msg_composer_get_send_html                    (EMsgComposer      *composer);
Index: plugins/print-message/print-message.c
===================================================================
RCS file: /cvs/gnome/evolution/plugins/print-message/print-message.c,v
retrieving revision 1.2
diff -u -p -r1.2 print-message.c
--- plugins/print-message/print-message.c	24 Aug 2005 03:14:10 -0000	1.2
+++ plugins/print-message/print-message.c	7 Nov 2006 19:45:37 -0000
@@ -83,7 +83,7 @@ org_gnome_print_message (EPlugin *ep, EM
 	data->config = e_print_load_config ();
 	data->preview = 0;
 	
-	data->msg = e_msg_composer_get_message (composer, 1);
+	data->msg = e_msg_composer_get_message_print (composer, 1);
 	dialog = (GtkDialog *)e_print_get_dialog_with_config (_("Print Message"), GNOME_PRINT_DIALOG_COPIES, data->config);
 	gtk_dialog_set_default_response(dialog, GNOME_PRINT_DIALOG_RESPONSE_PRINT);
 	e_dialog_set_transient_for ((GtkWindow *) dialog, (GtkWidget *) composer);
@@ -104,7 +104,7 @@ org_gnome_print_preview (EPlugin *ep, EM
 	data->config = e_print_load_config ();
 	data->preview = 0;
 	
-	data->msg = e_msg_composer_get_message (composer, 1);
+	data->msg = e_msg_composer_get_message_print (composer, 1);
 
 	print_response(NULL, GNOME_PRINT_DIALOG_RESPONSE_PREVIEW, data);
 }
