 		response.status = routeRes.statusCode
 		response.headers = routeRes.headers
 
+		uncompressedBody = ''
+		if routeRes.headers['content-encoding'] == 'gzip' #attempt to gunzip
+			routeRes.pipe(gunzip);
+
+		gunzip.on "data", (data) ->
+			uncompressedBody += data
+			return
+
 		bufs = []
 		routeRes.on "data", (chunk) ->
 			bufs.push chunk

util = require('util');
zlib = require('zlib');
http = require 'http'
https = require 'https'
net = require 'net'

			response.timestamp = new Date()
			charset = obtainCharset(routeRes.headers)
			if routeRes.headers['content-encoding'] == 'gzip'
				gunzip.on "end", ->
					response.body = uncompressedBody
					if not defered.promise.isRejected()
						defered.resolve response
					return
			else if routeRes.headers['content-encoding'] == 'deflate'
				zlib.inflate(
					Buffer.concat bufs,
