diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
 # CHANGELOG
 
+## 1.0.0
+### Changed
+* Compatibility with `hedis >= 0.9.12`
+* Not compatible with `hedis < 0.9.12`
+### Added
+* Connection timeout parameter: `timeout`
+
 ## 0.0.3
 ### Changed
 * Empty password string will be nullified. Redis counts empty `AUTH` command as
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -11,6 +11,7 @@
 database: 0                     # database number to connect to
 max-connections: 5              # max connections in pool
 max-idle-time: 30               # keep connection open for 30 seconds
+timeout: 30                     # connection timeout
 ```
 
 to your config file, then
diff --git a/examples/redis.yml b/examples/redis.yml
--- a/examples/redis.yml
+++ b/examples/redis.yml
@@ -6,3 +6,4 @@
 database: 0                     # database number to connect to
 max-connections: 5              # max connections in pool
 max-idle-time: 30               # keep connection open for 30 seconds
+timeout: 30                     # connection timeout
diff --git a/hedis-config.cabal b/hedis-config.cabal
--- a/hedis-config.cabal
+++ b/hedis-config.cabal
@@ -1,5 +1,5 @@
 name:                hedis-config
-version:             0.0.3
+version:             1.0.0
 synopsis:            Easy trivial configuration for Redis
 description: Datatype to parse redis connection settings from file like
   .
@@ -11,7 +11,7 @@
   > database: 0                     # database number to connect to
   > max-connections: 5              # max connections in pool
   > max-idle-time: 30               # keep connection open for 30 seconds
-
+  > timeout: 30                     # connection timeout
 
 license:             BSD3
 license-file:        LICENSE
@@ -39,7 +39,7 @@
   build-depends:       base         >= 4.6   && < 5
                      , aeson
                      , bytestring
-                     , hedis        >= 0.6
+                     , hedis        >= 0.9.12
                      , scientific
                      , text
                      , time
diff --git a/src/Database/Redis/Config.hs b/src/Database/Redis/Config.hs
--- a/src/Database/Redis/Config.hs
+++ b/src/Database/Redis/Config.hs
@@ -29,6 +29,7 @@
 database: 0                     # database number to connect to
 max-connections: 5              # max 5 connections in pool
 max-idle-time: 30               # keep connection open for 30 seconds
+timeout: 30                     # connection timeout
 @
 
 -}
@@ -42,9 +43,9 @@
 parsePort :: Object -> A.Parser (Maybe PortID)
 parsePort o =
     optional
-    $   (fmap (\a -> PortNumber $ floor (a :: Scientific)) (o .: "port"))
-    <|> (fmap UnixSocket (o .: "socket"))
-    <|> (fmap Service (o .: "service"))
+    $   fmap (\a -> PortNumber $ floor (a :: Scientific)) (o .: "port")
+    <|> fmap UnixSocket (o .: "socket")
+    <|> fmap Service (o .: "service")
 
 parsePassword :: Object -> A.Parser (Maybe BS.ByteString)
 parsePassword o = do
@@ -54,18 +55,24 @@
     Just "" -> Nothing
     Just ps -> Just $ T.encodeUtf8 ps
 
+realToFrac' :: Scientific -> NominalDiffTime
+realToFrac' = realToFrac
+
+parseTimeout :: Object -> A.Parser (Maybe (Maybe NominalDiffTime))
+parseTimeout o = o .:? "timeout" >>= \mt -> pure (pure (realToFrac' <$> mt))
+
 instance FromJSON RedisConfig where
     parseJSON v = RedisConfig <$> withObject "RedisConfig" go v
       where
         go o =
             ConnInfo
-            <$> (o .:? "host" .!= connectHost defaultConnectInfo)
-            <*> (parsePort o .!= connectPort defaultConnectInfo)
+            <$> o .:? "host" .!= connectHost defaultConnectInfo
+            <*> parsePort o .!= connectPort defaultConnectInfo
             <*> parsePassword o
-            <*> (o .:? "database" .!= (connectDatabase defaultConnectInfo))
-            <*> (o .:? "max-connections" .!= (connectMaxConnections defaultConnectInfo))
-            <*> (fmap (fmap (realToFrac :: Scientific -> NominalDiffTime)) (o .:? "max-idle-time") .!= (connectMaxIdleTime defaultConnectInfo))
-
+            <*> o .:? "database" .!= connectDatabase defaultConnectInfo
+            <*> o .:? "max-connections" .!= connectMaxConnections defaultConnectInfo
+            <*> fmap (fmap realToFrac') (o .:? "max-idle-time") .!= connectMaxIdleTime defaultConnectInfo
+            <*> parseTimeout o .!= connectTimeout defaultConnectInfo
 
 -- | Open redis connection
 connectRedis :: RedisConfig -> IO Connection
