diff -Nur evolution-2.12.3/configure.in evolution-2.12.3.new/configure.in
--- evolution-2.12.3/configure.in	2008-03-02 20:44:38.000000000 +0900
+++ evolution-2.12.3.new/configure.in	2008-03-02 20:45:07.000000000 +0900
@@ -1700,7 +1700,7 @@
 plugins_standard="$plugins_standard_always"
 all_plugins_standard="$plugins_standard"
 
-plugins_experimental_always="folder-unsubscribe mail-to-meeting save-attachments"
+plugins_experimental_always="folder-unsubscribe mail-to-meeting save-attachments header"
 plugins_experimental="$plugins_experimental_always $IPOD_SYNC $TNEF_ATTACHMENTS"
 all_plugins_experimental="$plugins_experimental_always ipod-sync tnef-attachments"
 
@@ -2041,6 +2041,7 @@
 plugins/imap-features/Makefile
 plugins/tnef-attachments/Makefile
 plugins/face/Makefile
+plugins/header/Makefile
 smime/Makefile
 smime/lib/Makefile
 smime/gui/Makefile
--- evolution-2.12.3/plugins/header/header.c	1970-01-01 08:00:00.000000000 +0800
+++ evolution-2.12.3.new/plugins/header/header.c	2008-03-02 20:45:07.000000000 +0900
@@ -0,0 +1,94 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ *  Author: Paul Wise <pabs3@bonedaddy.net>
+ *   
+ *  Copyright 2008 Paul Wise
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "composer/e-msg-composer.h"
+#include <gtk/gtk.h>
+#include <glib/gi18n.h>
+
+void org_gnome_composer_header (EPlugin * ep, EMMenuTargetWidget * target);
+int e_plugin_lib_configure (EPlugin * ep);
+
+void org_gnome_composer_header (EPlugin * ep, EMMenuTargetWidget * t)
+{
+	EMsgComposer *composer;
+	GtkWidget *header_dialog;
+	GtkWidget *vbox1;
+	GtkWidget *vbox2;
+	GtkWidget *header_label;
+	GtkWidget *header_edit;
+	GtkWidget *value_label;
+	GtkWidget *value_edit;
+	GtkWidget *vbox3;
+
+	composer = (EMsgComposer *) t->target.widget;
+
+	header_dialog = gtk_dialog_new_with_buttons (_("Insert custom header"),
+                                                  GTK_WINDOW(composer),
+                                                  GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+                                                  GTK_STOCK_OK,
+                                                  GTK_RESPONSE_ACCEPT,
+                                                  GTK_STOCK_CANCEL,
+                                                  GTK_RESPONSE_REJECT,
+                                                  NULL);
+	gtk_container_set_border_width (GTK_CONTAINER (header_dialog), 5);
+	gtk_widget_set_events (header_dialog, GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
+	gtk_window_set_position (GTK_WINDOW (header_dialog), GTK_WIN_POS_CENTER_ON_PARENT);
+	gtk_window_set_type_hint (GTK_WINDOW (header_dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
+	gtk_dialog_set_has_separator (GTK_DIALOG (header_dialog), FALSE);
+
+	vbox1 = GTK_DIALOG (header_dialog)->vbox;
+
+	vbox2 = gtk_vbox_new (FALSE, 0);
+	gtk_box_pack_start (GTK_BOX (vbox1), vbox2, TRUE, TRUE, 0);
+
+	header_label = gtk_label_new (_("Header"));
+	gtk_widget_show(header_label);
+	gtk_box_pack_start (GTK_BOX (vbox1), header_label, TRUE, TRUE, 0);
+
+	header_edit = gtk_entry_new ();
+	gtk_widget_show(header_edit);
+	gtk_box_pack_start (GTK_BOX (vbox1), header_edit, TRUE, TRUE, 0);
+
+	value_label = gtk_label_new (_("Value"));
+	gtk_widget_show(value_label);
+	gtk_box_pack_start (GTK_BOX (vbox1), value_label, TRUE, TRUE, 0);
+
+	value_edit = gtk_entry_new ();
+	gtk_widget_show(value_edit);
+	gtk_box_pack_start (GTK_BOX (vbox1), value_edit, TRUE, TRUE, 0);
+
+	vbox3 = GTK_DIALOG (header_dialog)->action_area;
+	gtk_button_box_set_layout (GTK_BUTTON_BOX (vbox3), GTK_BUTTONBOX_END);
+
+	if( GTK_RESPONSE_ACCEPT == gtk_dialog_run(GTK_DIALOG(header_dialog)) )
+	{
+		const gchar *header = gtk_entry_get_text (GTK_ENTRY (header_edit));
+		const gchar *value = gtk_entry_get_text (GTK_ENTRY (value_edit));
+		e_msg_composer_modify_header (composer, header, value);
+	}
+
+	if( header_dialog ) gtk_widget_destroy(header_dialog);
+}
--- evolution-2.12.3/plugins/header/Makefile.am	1970-01-01 08:00:00.000000000 +0800
+++ evolution-2.12.3.new/plugins/header/Makefile.am	2008-03-02 20:45:07.000000000 +0900
@@ -0,0 +1,39 @@
+INCLUDES = -I. 						\
+	-I$(top_srcdir)	                                \
+	-I$(top_srcdir)/widgets				\
+	-I$(top_srcdir)/widgets/misc			\
+	-I$(top_builddir)/mail                          \
+	-I$(top_srcdir)/camel                           \
+	-I$(top_builddir)/composer			\
+	$(EVOLUTION_MAIL_CFLAGS)			\
+	-DEVOLUTION_GLADEDIR=\""$(gladedir)"\"          \
+	-DCONNECTOR_GLADEDIR=\""$(gladedir)"\"
+
+
+@EVO_PLUGIN_RULE@
+
+plugin_DATA =	\
+	org-gnome-header.eplug	\
+	org-gnome-header-ui.xml  
+
+plugin_LTLIBRARIES = liborg-gnome-header.la
+
+liborg_gnome_header_la_SOURCES = 		\
+	header.c
+liborg_gnome_header_la_LIBADD = 			\
+	$(top_builddir)/e-util/libeutil.la 			\
+	$(top_builddir)/widgets/misc/libemiscwidgets.la		\
+	$(top_builddir)/mail/libevolution-mail.la 		\
+	$(EVOLUTION_MAIL_LIBS)					\
+	$(NO_UNDEFINED_REQUIRED_LIBS)				
+
+liborg_gnome_header_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+
+EXTRA_DIST = 						\
+	org-gnome-header.eplug.xml			\
+	org-gnome-header-ui.xml
+
+BUILT_SOURCES = 				\
+	org-gnome-header.eplug
+
+CLEANFILES = $(BUILT_SOURCES)
--- evolution-2.12.3/plugins/header/org-gnome-header.eplug.xml	1970-01-01 08:00:00.000000000 +0800
+++ evolution-2.12.3.new/plugins/header/org-gnome-header.eplug.xml	2008-03-02 20:45:07.000000000 +0900
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<e-plugin-list>
+	<e-plugin id="org.gnome.evolution.header" type="shlib" _name="Header"
+		location="@PLUGINDIR@/liborg-gnome-header@SOEXT@">
+
+		<author name="Paul Wise" email="pabs3@bonedaddy.net"/>
+		<_description>Allow users to add arbitrary headers to messages being composed.</_description>
+
+		<hook class="org.gnome.evolution.mail.bonobomenu:1.0">
+			<menu id="org.gnome.evolution.mail.composer" target="widget">
+				<ui file="@PLUGINDIR@/org-gnome-header-ui.xml"/>
+				<item
+					type="item"
+					verb="Header"
+					path="/commands/Header"			   
+					activate="org_gnome_composer_header"
+					enable="one"
+				/>
+			</menu>
+		</hook>
+	</e-plugin>
+</e-plugin-list>
--- evolution-2.12.3/plugins/header/org-gnome-header-ui.xml	1970-01-01 08:00:00.000000000 +0800
+++ evolution-2.12.3.new/plugins/header/org-gnome-header-ui.xml	2008-03-02 20:45:07.000000000 +0900
@@ -0,0 +1,12 @@
+<Root>
+  <commands>
+  	<cmd name="Header" _label="_Header..."/>
+  </commands>
+  <menu>
+ 	<submenu name="Insert">
+  		<placeholder name="Component">
+  			<menuitem name="Header" verb="" />
+	  	</placeholder>
+	</submenu>
+  </menu>
+</Root>
