diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,9 @@
+0.4.0.1
+=======
+
+- Support tls >= 2
+- Add upperbounds for http2
+
 0.4.0.0
 =======
 
diff --git a/push-notify-apn.cabal b/push-notify-apn.cabal
--- a/push-notify-apn.cabal
+++ b/push-notify-apn.cabal
@@ -1,5 +1,5 @@
 name:                push-notify-apn
-version:             0.4.0.0
+version:             0.4.0.1
 synopsis:            Send push notifications to mobile iOS devices
 description:
     push-notify-apn is a library and command line utility that can be used to send
@@ -29,8 +29,8 @@
                      , bytestring
                      , containers
                      , data-default
-                     , http2 >= 3.0
-                     , http2-client >= 0.10.0.1
+                     , http2 >= 3.0 && <= 5.1
+                     , http2-client >= 0.10.0.2
                      , lifted-base
                      , mtl
                      , random
diff --git a/src/Network/PushNotify/APN.hs b/src/Network/PushNotify/APN.hs
--- a/src/Network/PushNotify/APN.hs
+++ b/src/Network/PushNotify/APN.hs
@@ -519,7 +519,11 @@
                   , clientSupported=def
                       { supportedVersions=[ TLS12 ]
                       , supportedCiphers=ciphersuite_strong }
+#if MIN_VERSION_tls(0, 2, 0)
+                  , clientUseEarlyData=False
+#else
                   , clientEarlyData=Nothing
+#endif
                   }
           pure clip
         False -> do
@@ -541,7 +545,11 @@
                   , clientSupported=def
                       { supportedVersions=[ TLS12 ]
                       , supportedCiphers=ciphersuite_strong }
+#if MIN_VERSION_tls(0, 2, 0)
+                  , clientUseEarlyData=False
+#else
                   , clientEarlyData=Nothing
+#endif
                   }
           pure clip
 
