diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-10-08  Vladimir Shabanov  <vshabanoff@gmail.com>
+
+	* HsOpenSSL.cabal (Version): Bump version to 0.11.2.4
+
+	* Setup.hs: Fixed handling of 'cabal configure' errors
+	in Homebrew/MacPorts OpenSSL autodetection.
+
 2016-10-06  Vladimir Shabanov  <vshabanoff@gmail.com>
 
 	* HsOpenSSL.cabal (Version): Bump version to 0.11.2.3
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.3
+Version:       0.11.2.4
 License:       PublicDomain
 License-File:  COPYING
 Author:        Adam Langley, Mikhail Vorozhtsov, PHO, Taru Karttunen
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -57,35 +57,36 @@
                     fs ->
                         fail $ multipleFound fs
 
-multipleFound fs =
-    "Multiple OpenSSL libraries were found,\n\
-    \use " ++ intercalate " or " ["'-f " ++ f ++ "'" | (f,_) <- fs] ++ "\n\
-    \to specify location of installed OpenSSL library."
-
 notFound =
     "Can't find OpenSSL library,\n\
     \install it via 'brew install openssl' or 'port install openssl'\n\
     \or use --extra-include-dirs= and --extra-lib-dirs=\n\
     \to specify location of installed OpenSSL library."
 
+multipleFound fs =
+    "Multiple OpenSSL libraries were found,\n\
+    \use " ++ intercalate " or " ["'-f " ++ f ++ "'" | (f,_) <- fs] ++ "\n\
+    \to specify location of installed OpenSSL library."
+
 setFlag f c = c { configConfigurationsFlags = go (configConfigurationsFlags c) }
     where go [] = []
           go (x@(FlagName n, _):xs)
               | n == f = (FlagName f, True) : xs
               | otherwise = x : go xs
 
-tryConfig descr flags =
-    E.tryJust ue $ checkedConfigure descr flags
-    where ue e | isUserError e = Just e
-               | otherwise = Nothing
-
-checkedConfigure descr flags = do
+tryConfig descr flags = do
     lbi <- confHook simpleUserHooks descr flags
     -- confHook simpleUserHooks == Distribution.Simple.Configure.configure
 
-    -- Testing whether C lib and header dependencies are working
-    postConf simpleUserHooks [] flags (localPkgDescr lbi) lbi
-    -- postConf simpleUserHooks ~==
-    --   Distribution.Simple.Configure.checkForeignDeps
+    -- Testing whether C lib and header dependencies are working.
+    -- We check exceptions only here, to check C libs errors but not other
+    -- configuration problems like not resolved .cabal dependencies.
+    E.tryJust ue $ do
+        postConf simpleUserHooks [] flags (localPkgDescr lbi) lbi
+        -- postConf simpleUserHooks ~==
+        --   Distribution.Simple.Configure.checkForeignDeps
 
-    return lbi
+        return lbi
+
+    where ue e | isUserError e = Just e
+               | otherwise = Nothing
