 }
 
 public func ==(lhs: HTTPRequestHeader.Name, rhs: HTTPRequestHeader.Name) -> Bool {
-    return lhs.standardName == rhs.standardName
+    return lhs.standardName.lowercased() == rhs.standardName.lowercased()
 }
 
 /// A HTTP response header.

        case custom(name: String)
        
        public var hashValue: Int {
            return self.standardName.hashValue
        }
        
        public var standardName: String {
            switch self {
            case .accept: return "accept"
            case .acceptCharset: return "accept-charset"
            case .acceptEncoding: return "accept-encoding"
            case .acceptLanguage: return "accept-language"
            case .acceptDatetime: return "accept-datetime"
			case .accessControlRequestMethod: return "access-control-request-method"
			case .accessControlRequestHeaders: return "access-control-request-headers"
            case .authorization: return "authorization"
            case .cacheControl: return "cache-control"
            case .connection: return "connection"
            case .cookie: return "cookie"
            case .contentLength: return "content-length"
            case .contentMD5: return "content-md5"
            case .contentType: return "content-type"
            case .date: return "date"
            case .expect: return "expect"
            case .forwarded: return "forwarded"
            case .from: return "from"
            case .host: return "host"
            case .ifMatch: return "if-match"
            case .ifModifiedSince: return "if-modified-since"
            case .ifNoneMatch: return "if-none-match"
            case .ifRange: return "if-range"
            case .ifUnmodifiedSince: return "if-unmodified-since"
            case .maxForwards: return "max-forwards"
            case .origin: return "origin"
            case .pragma: return "pragma"
            case .proxyAuthorization: return "proxy-authorization"
            case .range: return "range"
            case .referer: return "referer"
            case .te: return "te"
            case .userAgent: return "user-agent"
            case .upgrade: return "upgrade"
            case .via: return "via"
            case .warning: return "warning"
            case .xAuthorization: return "x-authorization"
			case .xRequestedWith: return "x-requested-with"
			case .xRequestedBy: return "x-requested-by"
            case .dnt: return "dnt"
            case .xForwardedFor: return "x-forwarded-for"
            case .xForwardedHost: return "x-forwarded-host"
            case .xForwardedProto: return "x-forwarded-proto"
            case .frontEndHttps: return "front-end-https"
            case .xHttpMethodOverride: return "x-http-method-override"
            case .xATTDeviceId: return "x-att-deviceid"
            case .xWapProfile: return "x-wap-profile"
            case .proxyConnection: return "proxy-connection"
            case .xUIDH: return "x-uidh"
            case .xCsrfToken: return "x-csrf-token"
            case .custom(let str): return str.lowercased()
            }
        }
        
        public static let lookupTable: [String:HTTPRequestHeader.Name] = [
            "accept":.accept,
            "accept-charset":.acceptCharset,
            "accept-encoding":.acceptEncoding,

        case custom(name: String)
        
        public var hashValue: Int {
            return self.standardName.lowercased().hashValue
        }
        
        public var standardName: String {
