Index: __init__.py
===================================================================
--- __init__.py	(revision 3581)
+++ __init__.py	(working copy)
@@ -166,7 +166,7 @@
         else:
             self._iterator = [content]
             self._is_string = True
-        self.headers = {'Content-Type': mimetype}
+        self._headers = {'Content-Type': mimetype}
         self.cookies = SimpleCookie()
         self.status_code = 200
 
@@ -177,21 +177,37 @@
             + '\n\n' + self.content
 
     def __setitem__(self, header, value):
-        self.headers[header] = value
+        self._headers[header] = value
 
     def __delitem__(self, header):
         try:
-            del self.headers[header]
+            del self._headers[header]
         except KeyError:
             pass
 
     def __getitem__(self, header):
-        return self.headers[header]
+        value = self._headers[header]
+        if isinstance(value, unicode):
+            value = value.encode(self._charset)
 
+        return value
+
+    def _get_headers(self):
+        headers = {}
+        for key, value in self._headers.items():
+            if isinstance(value, unicode):
+                headers[key] = value.encode(self._charset)
+            else:
+                headers[key] = value
+
+        return headers
+
+    headers = property(_get_headers)
+
     def has_header(self, header):
         "Case-insensitive check for a header"
         header = header.lower()
-        for key in self.headers.keys():
+        for key in self._headers.keys():
             if key.lower() == header:
                 return True
         return False
