BEGIN { my $old_make_request = WWW::Mechanize->can('_make_request'); no warnings 'redefine'; *WWW::Mechanize::_make_request = sub { my $response = $old_make_request->(@_); my $type = $response->header('Content-Type'); my $dispo = $response->header('Content-Disposition'); $response->header('Content-Type' => 'application/zip') if defined($dispo) && $dispo =~ m{\.zip$} && defined($type) && $type =~ m{^text/}; return $response; }; }