HTTP::Headers now special case field names that start with a ':'. This is used as an escape mechanism when you need the header names to not go through canonicalization. It means that you can force LWP to use a specific casing and even underscores in header names. The ugly $TRANSLATE_UNDERSCORE global has been undocumented as a result of this. #### #!/usr/bin/perl --- use strict; use warnings; use LWP 5.800; my $h = HTTP::Headers->new; $h->header( qw' :SM_USER waldo '); print $h->as_string; __END__ SM_USER: waldo