$OpenBSD$
--- lib/HTTP/Headers.pm.orig	Sat Oct 20 10:11:21 2012
+++ lib/HTTP/Headers.pm	Tue Nov  6 16:21:11 2012
@@ -150,7 +150,7 @@ sub _header
     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;
