diff --git a/CHANGES.md b/CHANGES.md
index cfa9821539c43b1715fa10a1d43ef9fe60c6889f..115da9a9e27e402e4254a700420d53dd1398fd78 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -73,7 +73,7 @@
 * Fix dropdown confirm dialogs for restart and shutdown
 * Fix parsing utf8 data from tvdb and tvrage
 * Fix display show status and subtitle searches to use new column class names
-
+* Fix API response header for JSON content type and the return of JSONP data
 
 ### 0.2.1 (2014-10-22 06:41:00 UTC)
 
diff --git a/HACKS.txt b/HACKS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8750d457e7c6fe083480533902e15542dfb1aaad
--- /dev/null
+++ b/HACKS.txt
@@ -0,0 +1,3 @@
+Libs with customisations...
+
+/tornado
diff --git a/sickbeard/webapi.py b/sickbeard/webapi.py
index 2b4abd1e592ae4ef0dcdf743f6df36734fd22f1e..68dd25a6c6e72114e6af5b395cdc213764414f28 100644
--- a/sickbeard/webapi.py
+++ b/sickbeard/webapi.py
@@ -164,14 +164,16 @@ class Api(webserve.MainHandler):
         self.set_header("Content-Type", "application/json")
         try:
             out = json.dumps(dict, indent=self.intent, sort_keys=True)
-            callback = self.request.headers.get('callback', None) or self.request.headers.get('jsonp', None)
-            if callback != None:
-                out = callback + '(' + out + ');'  # wrap with JSONP call if requested
+            if 'jsonp' in self.request.query_arguments:
+                out = self.request.arguments['jsonp'] + '(' + out + ');'  # wrap with JSONP call if requested
+
         except Exception, e:  # if we fail to generate the output fake an error
             logger.log(u"API :: " + traceback.format_exc(), logger.DEBUG)
             out = '{"result":"' + result_type_map[RESULT_ERROR] + '", "message": "error while composing output: "' + ex(
                 e) + '"}'
-        return out
+
+        tornado_write_hack_dict = {'unwrap_json': out}
+        return tornado_write_hack_dict
 
     def _grand_access(self, realKey, args, kwargs):
         """ validate api key and log result """
diff --git a/tornado/web.py b/tornado/web.py
index a038265fd3fd4a726d8e1f2f993c79dc9e5ab1e7..9edd719a1ef1329fe527446f6222715b11bd1a2a 100644
--- a/tornado/web.py
+++ b/tornado/web.py
@@ -652,7 +652,10 @@ class RequestHandler(object):
         if not isinstance(chunk, (bytes, unicode_type, dict)):
             raise TypeError("write() only accepts bytes, unicode, and dict objects")
         if isinstance(chunk, dict):
-            chunk = escape.json_encode(chunk)
+            if 'unwrap_json' in chunk:
+                chunk = chunk['unwrap_json']
+            else:
+                chunk = escape.json_encode(chunk)
             self.set_header("Content-Type", "application/json; charset=UTF-8")
         chunk = utf8(chunk)
         self._write_buffer.append(chunk)