         case custom(name: String)
         
         public var hashValue: Int {
-            return self.standardName.hashValue
+            return self.standardName.lowercased().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()
+            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
             }
         }
         
-        public static let lookupTable: [String:HTTPRequestHeader.Name] = [
+        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.hashValue
        }
        
        public var standardName: String {

}

public func ==(lhs: HTTPRequestHeader.Name, rhs: HTTPRequestHeader.Name) -> Bool {
    return lhs.standardName.lowercased() == rhs.standardName.lowercased()
}

/// A HTTP response header.
