Adding Content-Type to Response produced 2 Content-Type headers
`curl -v localhost:8000`
`>GET / HTTP/1.1`
`>Host: localhost:8000`
`>User-Agent: curl/7.52.1`
` >Accept: */*`
 
` HTTP 1.0, assume close after body`
`< HTTP/1.0 200 OK`
`< Server: BaseHTTP/0.3 Python/2.7.12`
`< Date: Thu, 27 Apr 2017 20:30:54 GMT`
`< Content-Length: 83`
`< Content-Type: application/xml`
`< Content-Type: application/xml`
`< `
` Curl_http_done: called premature == 0`
` Closing connection 0`
`<?xml version="1.0" encoding="UTF-8"?><Response><Say>Hello World</Say>`

diff --git a/chalice/local.py b/chalice/local.py
index 92bd8eb..dc2da48 100644
--- a/chalice/local.py
+++ b/chalice/local.py
@@ -120,9 +120,9 @@ class ChaliceRequestHandler(BaseHTTPRequestHandler):
         # type: (EventType, Dict[str, Any]) -> None
         self.send_response(response['statusCode'])
         self.send_header('Content-Length', str(len(response['body'])))
-        self.send_header(
-            'Content-Type',
-            response['headers'].get('Content-Type', 'application/json'))
+        content_type = response['headers'].pop(
+            'Content-Type', 'application/json')
+        self.send_header('Content-Type', content_type)
         headers = response['headers']
         for header in headers:
             self.send_header(header, headers[header])
diff --git a/tests/unit/test_local.py b/tests/unit/test_local.py
index 462fe09..914ddc9 100644
--- a/tests/unit/test_local.py
+++ b/tests/unit/test_local.py
@@ -1,4 +1,5 @@
 from chalice import local, BadRequestError
+from chalice import Response
 import json
 import decimal
 import pytest
@@ -66,6 +67,12 @@ def sample_app():
     def query_string():
         return demo.current_request.query_params
 
+    @demo.route('/custom-response')
+    def custom_response():
+        return Response(body='text',
+                        status_code=200,
+                        headers={'Content-Type': 'text/plain'})
+
     return demo
 
 
@@ -187,6 +194,16 @@ def test_querystring_is_mapped(handler):
     assert _get_body_from_response_stream(handler) == {'a': 'b', 'c': 'd'}
 
 
+def test_content_type_included_once(handler):
+    set_current_request(handler, method='GET', path='/custom-response')
+    handler.do_GET()
+    value = handler.wfile.getvalue()
+    response_lines = value.splitlines()
+    content_header_lines = [line for line in response_lines
+                            if line.startswith('Content-Type')]
+    assert len(content_header_lines) == 1
+
+
 @pytest.mark.parametrize('actual_url,matched_url', [
     ('/foo', '/foo'),
     ('/foo/bar', '/foo/bar'),
['chalice/local.py', 'tests/unit/test_local.py']