Index: test/tc_mech.rb =================================================================== --- test/tc_mech.rb (revision 475) +++ test/tc_mech.rb (working copy) @@ -25,6 +25,12 @@ @agent.get('http://localhost/', [], 'http://tenderlovemaking.com/') assert_equal 'http://tenderlovemaking.com/', @agent.request['Referer'] end + + def test_get_with_file_referer + assert_nothing_raised do + @agent.get('http://localhost', [], WWW::Mechanize::File.new(URI.parse('http://tenderlovemaking.com/crossdomain.xml'))) + end + end def test_weird_url assert_nothing_raised { Index: lib/www/mechanize.rb =================================================================== --- lib/www/mechanize.rb (revision 475) +++ lib/www/mechanize.rb (working copy) @@ -168,7 +168,7 @@ # FIXME: Huge hack so that using a URI as a referer works. I need to # refactor everything to pass around URIs but still support # WWW::Mechanize::Page#base - unless referer.is_a?(Page) + unless referer.is_a?(WWW::Mechanize::File) referer = referer.is_a?(String) ? Page.new(URI.parse(referer), {'content-type' => 'text/html'}) : Page.new(referer, {'content-type' => 'text/html'})