Mechanize GETting twice without redirect?

[Cross posted to Ruby on Rails Forum and Mechanize mailing list.]

I'm using Mechanize for page scraping (Ruby 1.9.2 / Rails 3.0.5 / Mechanize 2.0.1). I'm seeing a case where a single

  agent.get(url)

generates two HTTP GETs. Why is this happening?

The response to the first GET is a 200 (no redirect) and doesn't have any meta-refresh. I don't see why Mechanize is issuing the second GET (which happens to be failing with an EOFError with Content-Length / body length mismatch).

Details: I'm using the nifty Charles web proxy debugger to monitor browser / server interactions.

UPDATE: sort of solved.

The web server sets Content-Length to a incorrect value (at least for compressed replies), and Mechanize was re-trying the GET before giving up.

The temporary fix is to monkey patch Mechanize::HTTP::Agent to ignore Content-Length.

A longer-term fix would be to include a mechanism in Mechanize to allow ignoring bogus Content-Length. I've submitted a feature request to mechanize/issues.