<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -95,7 +95,7 @@ module Sinatra
   class NotFound &lt; RuntimeError; end
   class ServerError &lt; RuntimeError; end
 
-  Result = Struct.new(:block, :params, :status) unless defined?(Result)
+  Result = Struct.new(:block, :params, :status, :content_type) unless defined?(Result)
 
   def options
     application.options
@@ -179,7 +179,8 @@ module Sinatra
         return unless host === request.host
       end
       if accept = options[:accept]
-        return unless request.accept.include? lookup_mime(accept)
+        accept = lookup_mime(accept)
+        return unless request.accept.include? accept
       end
       return unless pattern =~ request.path_info.squeeze('/')
       params.merge!(param_keys.zip($~.captures.map(&amp;:from_param)).to_hash)
@@ -188,7 +189,7 @@ module Sinatra
         params.delete_if { |k, v| k =~ /^_splat_\d+$/ }
         params[&quot;splat&quot;] = splats
       end
-      Result.new(block, params, 200)
+      Result.new(block, params, 200, accept)
     end
     
   end
@@ -202,7 +203,7 @@ module Sinatra
     end
     
     def invoke(request)
-      Result.new(block, {}, 404)
+      Result.new(block, {}, 404, nil)
     end
     
   end
@@ -213,7 +214,7 @@ module Sinatra
       return unless File.file?(
         Sinatra.application.options.public + request.path_info.http_unescape
       )
-      Result.new(block, {}, 200)
+      Result.new(block, {}, 200, nil)
     end
     
     def block
@@ -1233,6 +1234,7 @@ module Sinatra
       result = lookup(request)
       context = EventContext.new(request, Rack::Response.new, result.params)
       context.status(result.status)
+      context.response.headers['Content-Type'] = result.content_type if result.content_type
       begin
         returned = run_safely do
           catch(:halt) do</diff>
      <filename>lib/sinatra.rb</filename>
    </modified>
    <modified>
      <diff>@@ -224,6 +224,7 @@ context &quot;Events in an app&quot; do
     get_it '/', :env =&gt; { :accept =&gt; 'application/xml' }
     should.be.ok
     body.should.equal 'application/xml'
+    headers['Content-Type'].should.equal 'application/xml'
 
     get_it '/', :env =&gt; { :accept =&gt; 'text/html' }
     should.not.be.ok</diff>
      <filename>test/application_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>cfcf7863a865337ea29c764db5a192bf46f50e29</id>
    </parent>
  </parents>
  <author>
    <name>Adam Wiggins</name>
    <email>adam@heroku.com</email>
  </author>
  <url>http://github.com/adamwiggins/sinatra/commit/8a99bd7ef181aca2f35a9df6bea18d512ebdfd39</url>
  <id>8a99bd7ef181aca2f35a9df6bea18d512ebdfd39</id>
  <committed-date>2008-06-09T00:41:45-07:00</committed-date>
  <authored-date>2008-06-09T00:41:45-07:00</authored-date>
  <message>:accept option sets content-type header</message>
  <tree>27e3b28dc74c9ccc52a683478c60a23fcaae9594</tree>
  <committer>
    <name>Adam Wiggins</name>
    <email>adam@heroku.com</email>
  </committer>
</commit>
