diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,11 @@
+* 0.10 [2017-10-22]
+
+New status codes, new headers.
+
+Fixed typo in imATeapot, added missing toEnum.
+
+Oh, and http20.
+
 * 0.9.1 [2016-06-04]
 
 New function: parseByteRanges.
diff --git a/Network/HTTP/Types.hs b/Network/HTTP/Types.hs
--- a/Network/HTTP/Types.hs
+++ b/Network/HTTP/Types.hs
@@ -93,7 +93,7 @@
 , status417
 , expectationFailed417
 , status418
-, imATeaPot418
+, imATeapot418
 , status500
 , internalServerError500
 , status501
diff --git a/Network/HTTP/Types/Header.hs b/Network/HTTP/Types/Header.hs
--- a/Network/HTTP/Types/Header.hs
+++ b/Network/HTTP/Types/Header.hs
@@ -24,7 +24,6 @@
 , hContentMD5
 , hContentRange
 , hContentType
-, hCookie
 , hDate
 , hETag
 , hExpect
@@ -39,6 +38,7 @@
 , hLastModified
 , hLocation
 , hMaxForwards
+, hOrigin
 , hPragma
 , hProxyAuthenticate
 , hProxyAuthorization
@@ -55,6 +55,10 @@
 , hVia
 , hWWWAuthenticate
 , hWarning
+, hContentDisposition
+, hMIMEVersion
+, hCookie
+, hSetCookie
   -- ** Byte ranges
 , ByteRange(..)
 , renderByteRangeBuilder
@@ -91,9 +95,8 @@
 -- | Response Headers
 type ResponseHeaders = [Header]
 
--- | HTTP Header names
--- According to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
-hAccept, hAcceptCharset, hAcceptEncoding, hAcceptLanguage, hAcceptRanges, hAge, hAllow, hAuthorization, hCacheControl, hConnection, hContentEncoding, hContentLanguage, hContentLength, hContentLocation, hContentMD5, hContentRange, hContentType, hCookie, hDate, hETag, hExpect, hExpires, hFrom, hHost, hIfMatch, hIfModifiedSince, hIfNoneMatch, hIfRange, hIfUnmodifiedSince, hLastModified, hLocation, hMaxForwards, hPragma, hProxyAuthenticate, hProxyAuthorization, hRange, hReferer, hRetryAfter, hServer, hTE, hTrailer, hTransferEncoding, hUpgrade, hUserAgent, hVary, hVia, hWWWAuthenticate, hWarning :: HeaderName
+-- | HTTP Header names according to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
+hAccept, hAcceptCharset, hAcceptEncoding, hAcceptLanguage, hAcceptRanges, hAge, hAllow, hAuthorization, hCacheControl, hConnection, hContentEncoding, hContentLanguage, hContentLength, hContentLocation, hContentMD5, hContentRange, hContentType, hDate, hETag, hExpect, hExpires, hFrom, hHost, hIfMatch, hIfModifiedSince, hIfNoneMatch, hIfRange, hIfUnmodifiedSince, hLastModified, hLocation, hMaxForwards, hPragma, hProxyAuthenticate, hProxyAuthorization, hRange, hReferer, hRetryAfter, hServer, hTE, hTrailer, hTransferEncoding, hUpgrade, hUserAgent, hVary, hVia, hWWWAuthenticate, hWarning :: HeaderName
 hAccept             = "Accept"
 hAcceptCharset      = "Accept-Charset"
 hAcceptEncoding     = "Accept-Encoding"
@@ -111,7 +114,6 @@
 hContentMD5         = "Content-MD5"
 hContentRange       = "Content-Range"
 hContentType        = "Content-Type"
-hCookie             = "Cookie"
 hDate               = "Date"
 hETag               = "ETag"
 hExpect             = "Expect"
@@ -142,6 +144,20 @@
 hVia                = "Via"
 hWWWAuthenticate    = "WWW-Authenticate"
 hWarning            = "Warning"
+
+-- | HTTP Header names according to http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html
+hContentDisposition, hMIMEVersion :: HeaderName
+hContentDisposition = "Content-Disposition"
+hMIMEVersion        = "MIME-Version"
+
+-- | HTTP Header names according to https://tools.ietf.org/html/rfc6265#section-4
+hCookie, hSetCookie :: HeaderName
+hCookie             = "Cookie"
+hSetCookie          = "Set-Cookie"
+
+-- | HTTP Header names according to https://tools.ietf.org/html/rfc6454
+hOrigin :: HeaderName
+hOrigin = "Origin"
 
 -- | RFC 2616 Byte range (individual).
 --
diff --git a/Network/HTTP/Types/Status.hs b/Network/HTTP/Types/Status.hs
--- a/Network/HTTP/Types/Status.hs
+++ b/Network/HTTP/Types/Status.hs
@@ -73,9 +73,11 @@
 , status417
 , expectationFailed417
 , status418
-, imATeaPot418
+, imATeapot418
 , status422
 , unprocessableEntity422
+, status426
+, upgradeRequired426
 , status428
 , preconditionRequired428
 , status429
@@ -162,7 +164,9 @@
     toEnum 415 = status415
     toEnum 416 = status416
     toEnum 417 = status417
+    toEnum 418 = status418
     toEnum 422 = status422
+    toEnum 426 = status426
     toEnum 428 = status428
     toEnum 429 = status429
     toEnum 431 = status431
@@ -464,8 +468,8 @@
 status418 = mkStatus 418 "I'm a teapot"
 
 -- | I'm a teapot 418
-imATeaPot418 :: Status
-imATeaPot418 = status418
+imATeapot418 :: Status
+imATeapot418 = status418
 
 -- | Unprocessable Entity 422
 -- (<https://tools.ietf.org/html/rfc4918 RFC 4918>)
@@ -476,6 +480,16 @@
 -- (<https://tools.ietf.org/html/rfc4918 RFC 4918>)
 unprocessableEntity422 :: Status
 unprocessableEntity422 = status422
+
+-- | Upgrade Required 426
+-- (<https://tools.ietf.org/html/rfc7231#section-6.5.15>)
+status426 :: Status
+status426 = mkStatus 426 "Upgrade Required"
+
+-- | Upgrade Required 426
+-- (<https://tools.ietf.org/html/rfc7231#section-6.5.15>)
+upgradeRequired426 :: Status
+upgradeRequired426 = status426
 
 -- | Precondition Required 428
 -- (<https://tools.ietf.org/html/rfc6585 RFC 6585>)
diff --git a/Network/HTTP/Types/URI.hs b/Network/HTTP/Types/URI.hs
--- a/Network/HTTP/Types/URI.hs
+++ b/Network/HTTP/Types/URI.hs
@@ -145,7 +145,7 @@
          in parsePair x : parseQueryString' xs
       where
         parsePair x =
-            let (k, v) = B.breakByte 61 x -- equal sign
+            let (k, v) = B.break (== 61) x -- equal sign
                 v'' =
                     case B.uncons v of
                         Just (_, v') -> Just $ urlDecode True v'
@@ -155,7 +155,7 @@
 queryStringSeparators :: B.ByteString
 queryStringSeparators = B.pack [38,59] -- ampersand, semicolon
 
--- | Break the second bytestring at the first occurence of any bytes from
+-- | Break the second bytestring at the first occurrence of any bytes from
 -- the first bytestring, discarding that byte.
 breakDiscard :: B.ByteString -> B.ByteString -> (B.ByteString, B.ByteString)
 breakDiscard seps s =
@@ -280,7 +280,7 @@
             Just (47, bs') -> bs' -- 47 == /
             _ -> bs
     go bs =
-        let (x, y) = B.breakByte 47 bs
+        let (x, y) = B.break (== 47) bs
          in decodePathSegment x :
             if B.null y
                 then []
@@ -310,7 +310,7 @@
       | "http://"  `B.isPrefixOf` path = (snd . breakOnSlash . B.drop 7) path
       | "https://" `B.isPrefixOf` path = (snd . breakOnSlash . B.drop 8) path
       | otherwise                      = path
-    breakOnSlash = B.breakByte 47
+    breakOnSlash = B.break (== 47)
     ensureNonEmpty "" = "/"
     ensureNonEmpty p  = p
 
@@ -322,5 +322,5 @@
 -- | Decode a whole path (path segments + query).
 decodePath :: B.ByteString -> ([Text], Query)
 decodePath b =
-    let (x, y) = B.breakByte 63 b -- question mark
+    let (x, y) = B.break (== 63) b -- question mark
     in (decodePathSegments x, parseQuery y)
diff --git a/Network/HTTP/Types/Version.hs b/Network/HTTP/Types/Version.hs
--- a/Network/HTTP/Types/Version.hs
+++ b/Network/HTTP/Types/Version.hs
@@ -5,6 +5,7 @@
 , http09
 , http10
 , http11
+, http20
 )
 where
 
@@ -34,3 +35,7 @@
 -- | HTTP 1.1
 http11 :: HttpVersion
 http11 = HttpVersion 1 1
+
+-- | HTTP 2.0
+http20 :: HttpVersion
+http20 = HttpVersion 2 0
diff --git a/http-types.cabal b/http-types.cabal
--- a/http-types.cabal
+++ b/http-types.cabal
@@ -1,5 +1,5 @@
 Name:                http-types
-Version:             0.9.1
+Version:             0.10
 Synopsis:            Generic HTTP types for Haskell (for both client and server code).
 Description:         Generic HTTP types for Haskell (for both client and server code).
 Homepage:            https://github.com/aristidb/http-types
@@ -16,7 +16,7 @@
 Source-repository this
   type: git
   location: https://github.com/aristidb/http-types.git
-  tag: 0.9.1
+  tag: 0.10
 
 Source-repository head
   type: git
