diff --git a/System/X509/Unix.hs b/System/X509/Unix.hs
--- a/System/X509/Unix.hs
+++ b/System/X509/Unix.hs
@@ -16,22 +16,12 @@
     ( getSystemCertificateStore
     ) where
 
-import System.Directory (getDirectoryContents, doesFileExist, doesDirectoryExist)
 import System.Environment (getEnv)
-import System.FilePath ((</>))
-
-import Data.List (isPrefixOf)
-import Data.PEM (PEM(..), pemParseBS)
-import Data.Either
-import qualified Data.ByteString as B
-import Data.X509
 import Data.X509.CertificateStore
 
 import Control.Applicative ((<$>))
-import Control.Monad (filterM)
 import qualified Control.Exception as E
 
-import Data.Char
 import Data.Maybe (catMaybes)
 import Data.Monoid (mconcat)
 
@@ -46,54 +36,11 @@
 envPathOverride :: String
 envPathOverride = "SYSTEM_CERTIFICATE_PATH"
 
--- List all the path susceptible to contains a certificate in a directory
---
--- if the parameter is not a directory, hilarity follows.
-listDirectoryCerts :: FilePath -> IO [FilePath]
-listDirectoryCerts path =
-    getDirContents >>= filterM doesFileExist
-  where
-    isHashedFile s = length s == 10
-                  && isDigit (s !! 9)
-                  && (s !! 8) == '.'
-                  && all isHexDigit (take 8 s)
-    isCert x = (not $ isPrefixOf "." x) && (not $ isHashedFile x)
-
-    getDirContents = E.catch (map (path </>) . filter isCert <$> getDirectoryContents path) emptyPaths
-            where emptyPaths :: E.IOException -> IO [FilePath]
-                  emptyPaths _ = return []
-
-makeCertStore :: FilePath -> IO (Maybe CertificateStore)
-makeCertStore path = do
-    isDir  <- doesDirectoryExist path
-    isFile <- doesFileExist path
-    wrapStore <$> (if isDir then makeDirStore else if isFile then makeFileStore else return [])
-  where
-    wrapStore :: [SignedCertificate] -> Maybe CertificateStore
-    wrapStore [] = Nothing
-    wrapStore l  = Just $ makeCertificateStore l
-
-    makeFileStore = readCertificates path
-    makeDirStore  = do
-        certFiles <- listDirectoryCerts path
-        concat <$> mapM readCertificates certFiles
-
-
 getSystemCertificateStore :: IO CertificateStore
-getSystemCertificateStore = mconcat . catMaybes <$> (getSystemPaths >>= mapM makeCertStore)
+getSystemCertificateStore = mconcat . catMaybes <$> (getSystemPaths >>= mapM readCertificateStore)
 
 getSystemPaths :: IO [FilePath]
 getSystemPaths = E.catch ((:[]) <$> getEnv envPathOverride) inDefault
     where
         inDefault :: E.IOException -> IO [FilePath]
         inDefault _ = return defaultSystemPaths
-
--- Try to read certificate from the content of a file.
---
--- The file may contains multiple certificates
-readCertificates :: FilePath -> IO [SignedCertificate]
-readCertificates file = E.catch (either (const []) (rights . map getCert) . pemParseBS <$> B.readFile file) skipIOError
-    where
-        getCert = decodeSignedCertificate . pemContent
-        skipIOError :: E.IOException -> IO [SignedCertificate]
-        skipIOError _ = return []
diff --git a/x509-system.cabal b/x509-system.cabal
--- a/x509-system.cabal
+++ b/x509-system.cabal
@@ -1,5 +1,5 @@
 Name:                x509-system
-Version:             1.6.3
+Version:             1.6.4
 Description:         System X.509 handling
 License:             BSD3
 License-file:        LICENSE
@@ -23,7 +23,7 @@
                    , process
                    , pem >= 0.1 && < 0.3
                    , x509 >= 1.6 && < 1.7
-                   , x509-store >= 1.6 && < 1.7
+                   , x509-store >= 1.6.2 && < 1.7
   Exposed-modules:   System.X509
                      System.X509.Unix
                      System.X509.MacOS
