diff --git a/Network/Secure/Connection.hs b/Network/Secure/Connection.hs
--- a/Network/Secure/Connection.hs
+++ b/Network/Secure/Connection.hs
@@ -63,16 +63,16 @@
 
 -- |Connect securely to the given host/port. The 'Connection' is
 -- returned only if the peer accepts the given 'LocalIdentity', and if
--- the remote endpoint successfully authenticates as the given
+-- the remote endpoint successfully authenticates as one of the given
 -- 'PeerIdentity'.
-connect :: LocalIdentity -> PeerIdentity -> (HostName, ServiceName)
+connect :: LocalIdentity -> [PeerIdentity] -> (HostName, ServiceName)
         -> IO Connection
-connect myId peerId (host, port) = bracketOnError newSock sClose tryConnect
+connect myId peerIds (host, port) = bracketOnError newSock sClose tryConnect
   where
     tryConnect sock = do
         addr <- getSockAddr (Just host) port
         Network.Socket.connect sock addr
-        connectSSL myId [peerId] False sock
+        connectSSL myId peerIds False sock
 
 -- |Read at most 'n' bytes from the given connection.
 read :: Connection -> Int -> IO ByteString
diff --git a/secure-sockets.cabal b/secure-sockets.cabal
--- a/secure-sockets.cabal
+++ b/secure-sockets.cabal
@@ -1,5 +1,5 @@
 Name:                secure-sockets
-Version:             1.1.0
+Version:             1.2.0
 Synopsis:            Secure point-to-point connectivity library
 Description:
     This library simplifies the task of securely connecting two
@@ -24,7 +24,7 @@
                        bytestring ==0.9.*,
                        directory ==1.0.*,
                        HSH ==2.0.*,
-                       HsOpenSSL ==0.8.*,
+                       HsOpenSSL >0.8 && <0.10,
                        network ==2.*,
                        transformers ==0.2.*
   ghc-prof-options:    -auto-all
