diff --git a/Data/X509/File.hs b/Data/X509/File.hs
--- a/Data/X509/File.hs
+++ b/Data/X509/File.hs
@@ -24,11 +24,9 @@
 readSignedObject :: (ASN1Object a, Eq a, Show a)
                  => FilePath
                  -> IO [X509.SignedExact a]
-readSignedObject filepath = foldl pemToSigned [] <$> readPEMs filepath
-  where pemToSigned acc pem =
-            case X509.decodeSignedObject $ pemContent pem of
-                Left _    -> acc
-                Right obj -> obj : acc
+readSignedObject filepath = decodePEMs <$> readPEMs filepath
+  where decodePEMs pems =
+          [ obj | pem <- pems, Right obj <- [X509.decodeSignedObject $ pemContent pem] ]
 
 -- | return all the public key that were successfully read from a file.
 readKeyFile :: FilePath -> IO [X509.PrivKey]
diff --git a/x509-store.cabal b/x509-store.cabal
--- a/x509-store.cabal
+++ b/x509-store.cabal
@@ -1,5 +1,5 @@
 Name:                x509-store
-Version:             1.6.0
+Version:             1.6.1
 Description:         X.509 collection accessing and storing methods for certificate, crl, exception list
 License:             BSD3
 License-file:        LICENSE
@@ -18,9 +18,6 @@
                    , bytestring
                    , mtl
                    , containers
-                   , directory
-                   , filepath
-                   , process
                    , pem >= 0.1 && < 0.3
                    , asn1-types >= 0.3 && < 0.4
                    , asn1-encoding >= 0.9 && < 0.10
