This problem surfaces with static files when using Sinatra with Rack 1.4.0 (works with 1.3.x).
I added a test to Rack::File for this, and it's passing.
Rack::File didn't used to serve HEAD requests at all, and instead, sent the body along with it. I'll check the ContentLength middleware next.
Add spec for #300. Appears to pass.
Fixed in sinatra/sinatra#457