--- lib/HTTP/Headers.pm.orig	2013-04-08 11:36:07.000000000 -0400
+++ lib/HTTP/Headers.pm	2013-04-08 11:42:27.000000000 -0400
@@ -150,7 +150,7 @@
     my($self, $field, $val, $op) = @_;
 
     Carp::croak("Illegal field name '$field'")
-        if rindex($field, ':') > 1 || !length($field);
+	if ( $field !~ /^X-Meta/ && rindex($field, ':') > 1) || !length($field);
 
     unless ($field =~ /^:/) {
 	$field =~ tr/_/-/ if $TRANSLATE_UNDERSCORE;
