diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2016-10-04  Vladimir Shabanov  <vshabanoff@gmail.com>
 
+	* HsOpenSSL.cabal (Version): Bump version to 0.11.2.1
+
+	* HsOpenSSL.cabal (Build-Depends):
+	base >= 4.4 && < 5 (GHC >= 7.2) instead of == 4.* (GHC >= 6.10)
+
+	* OpenSSL/RSA.hsc: fixed incompatibility with GHC < 7.10
+
+	* .travis.yml: Added Travis Job, by Herbert Valerio Riedel @hvr (#8).
+
+2016-10-04  Vladimir Shabanov  <vshabanoff@gmail.com>
+
 	* HsOpenSSL.cabal (Version): Bump version to 0.11.2
 
 	* HsOpenSSL.cabal: New maintainer and GitHub repo path.
diff --git a/HsOpenSSL.cabal b/HsOpenSSL.cabal
--- a/HsOpenSSL.cabal
+++ b/HsOpenSSL.cabal
@@ -12,7 +12,7 @@
     <http://hackage.haskell.org/package/tls>, which is a pure Haskell
     implementation of SSL.
     .
-Version:       0.11.2
+Version:       0.11.2.1
 License:       PublicDomain
 License-File:  COPYING
 Author:        Adam Langley, Mikhail Vorozhtsov, PHO, Taru Karttunen
@@ -21,13 +21,14 @@
 Homepage:      https://github.com/vshabanov/HsOpenSSL
 Bug-Reports:   https://github.com/vshabanov/HsOpenSSL/issues
 Category:      Cryptography
-Tested-With:   GHC == 7.6.2
 Cabal-Version: >= 1.10
+Tested-With:
+    GHC==8.0.2, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2, GHC==7.2.2
 Build-Type:    Simple
 Extra-Source-Files:
     AUTHORS
     ChangeLog
-    README.rst
+    README.md
     cbits/HsOpenSSL.h
     cbits/mutex.h
     examples/Makefile
@@ -50,7 +51,7 @@
 
 Library
     Build-Depends:
-        base       == 4.*,
+        base       >= 4.4 && < 5,
         bytestring >= 0.9   && < 0.11,
         network    >= 2.1   && < 2.7,
         time       >= 1.5   && < 1.7
@@ -128,7 +129,7 @@
     Build-Depends:
         HsOpenSSL,
         HUnit                >= 1.0 && < 1.4,
-        base                 == 4.*,
+        base                 >= 4.4 && < 5,
         bytestring           >= 0.9 && < 0.11,
         test-framework       >= 0.8 && < 0.9,
         test-framework-hunit >= 0.3 && < 0.4
@@ -143,7 +144,7 @@
     Build-Depends:
         HsOpenSSL,
         HUnit                >= 1.0 && < 1.4,
-        base                 == 4.*,
+        base                 >= 4.4 && < 5,
         bytestring           >= 0.9 && < 0.11,
         test-framework       >= 0.8 && < 0.9,
         test-framework-hunit >= 0.3 && < 0.4
@@ -158,10 +159,12 @@
     Build-Depends:
         HsOpenSSL,
         HUnit                >= 1.0 && < 1.4,
-        base                 == 4.*,
+        base                 >= 4.4 && < 5,
         bytestring           >= 0.9 && < 0.11,
         test-framework       >= 0.8 && < 0.9,
         test-framework-hunit >= 0.3 && < 0.4
+    Default-Language:
+        Haskell2010
     GHC-Options:
         -Wall
 
@@ -171,7 +174,7 @@
     Build-Depends:
         HsOpenSSL,
         HUnit                >= 1.0 && < 1.4,
-        base                 == 4.*,
+        base                 >= 4.4 && < 5,
         bytestring           >= 0.9 && < 0.11,
         test-framework       >= 0.8 && < 0.9,
         test-framework-hunit >= 0.3 && < 0.4
diff --git a/OpenSSL/RSA.hsc b/OpenSSL/RSA.hsc
--- a/OpenSSL/RSA.hsc
+++ b/OpenSSL/RSA.hsc
@@ -31,6 +31,9 @@
     where
 #include "HsOpenSSL.h"
 import Control.Monad
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative ((<$>))
+#endif
 import Data.ByteString (ByteString)
 import qualified Data.ByteString as B (useAsCStringLen)
 import qualified Data.ByteString.Internal as BI (createAndTrim)
@@ -113,9 +116,9 @@
          p <- (#peek RSA, p) rsaPtr
          q <- (#peek RSA, q) rsaPtr
          return (d /= nullPtr && p /= nullPtr && q /= nullPtr)
-                                               
 
 
+
 foreign import ccall unsafe "&RSA_free"
         _free :: FunPtr (Ptr RSA -> IO ())
 
@@ -310,7 +313,7 @@
                  , "rsaN = ", show (rsaN a), ", "
                  , "rsaE = ", show (rsaE a)
                  , "}"
-                 ] 
+                 ]
 
 instance Show RSAKeyPair where
     show a
@@ -321,4 +324,4 @@
                  , "rsaP = ", show (rsaP a), ", "
                  , "rsaQ = ", show (rsaQ a)
                  , "}"
-                 ] 
+                 ]
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,9 @@
+HsOpenSSL
+==========
+
+[![Build Status](https://travis-ci.org/vshabanov/HsOpenSSL.svg?branch=master)](https://travis-ci.org/vshabanov/HsOpenSSL)
+
+HsOpenSSL is an (incomplete) OpenSSL binding for Haskell. It can
+generate RSA and DSA keys, read and write PEM files, generate message
+digests, sign and verify messages, encrypt and decrypt messages. It
+also has some capabilities of creating SSL clients and servers.
diff --git a/README.rst b/README.rst
deleted file mode 100644
--- a/README.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-======
-README
-======
-
-HsOpenSSL is an (incomplete) OpenSSL binding for Haskell. It can
-generate RSA and DSA keys, read and write PEM files, generate message
-digests, sign and verify messages, encrypt and decrypt messages. It
-also has some capabilities of creating SSL clients and servers.
