 		let semiSplit = qs.characters.split("&").map { String($0) }
 		for paramPair in semiSplit {
 			
-			let paramSplit = paramPair.characters.split("=").map { String($0) }
+			let paramSplit = paramPair.characters.split("=", allowEmptySlices: true).map { String($0) }
 			if paramSplit.count == 2 {
 				let name = paramSplit[0].stringByDecodingURL
 				let value = paramSplit[1].stringByDecodingURL

			let semiSplit = qs.characters.split("&").map { String($0) }
			for paramPair in semiSplit {
				
				let paramSplit = paramPair.characters.split("=").map { String($0) }
				if paramSplit.count == 2 {
					let name = paramSplit[0].stringByReplacingString("+", withString: " ").stringByDecodingURL
					let value = paramSplit[1].stringByReplacingString("+", withString: " ").stringByDecodingURL

	
	/// A `Dictionary` containing all HTTP header names and values
	/// Only HTTP headers are included in the result. Any "meta" headers, i.e. those provided by the web server, are discarded.
	public lazy var headers: Dictionary<String, String> = {
		var d = Dictionary<String, String>()
		for (key, value) in self.connection.requestParams {
			if key.hasPrefix("HTTP_") {
