diff --git a/apiclient/http.py b/apiclient/http.py
index 4563bd1..c8a8cd4 100644
--- a/apiclient/http.py
+++ b/apiclient/http.py
@@ -513,7 +513,7 @@
     if request.body is None:
       body = body[:-2]
 
-    return status_line + body
+    return status_line.encode('utf-8') + body
 
   def _deserialize_response(self, payload):
     """Convert string into httplib2 response and content.
@@ -650,7 +650,7 @@
     boundary, _ = content.split(None, 1)
 
     # Prepend with a content-type header so FeedParser can handle it.
-    header = 'Content-Type: %s\r\n\r\n' % resp['content-type']
+    header = 'content-type: %s\r\n\r\n' % resp['content-type']
     for_parser = header + content
 
     parser = FeedParser()
diff --git a/tests/test_http.py b/tests/test_http.py
index cbbac61..4154310 100644
--- a/tests/test_http.py
+++ b/tests/test_http.py
@@ -198,6 +198,24 @@
     s = batch._serialize_request(request).splitlines()
     self.assertEquals(s, EXPECTED.splitlines())
 
+  def test_serialize_request_media_body(self):
+    batch = BatchHttpRequest()
+    f = open(datafile('small.png'))
+    body = f.read()
+    f.close()
+
+    request = HttpRequest(
+        None,
+        None,
+        'https://www.googleapis.com/someapi/v1/collection/?foo=bar',
+        method='POST',
+        body=body,
+        headers={'content-type': 'application/json'},
+        methodId=None,
+        resumable=None)
+    s = batch._serialize_request(request).splitlines()
+
+
   def test_serialize_request_no_body(self):
     batch = BatchHttpRequest()
     request = HttpRequest(
