diff --git a/Data/Certificate/X509/Ext.hs b/Data/Certificate/X509/Ext.hs
--- a/Data/Certificate/X509/Ext.hs
+++ b/Data/Certificate/X509/Ext.hs
@@ -28,6 +28,7 @@
 import Data.ASN1.Stream
 import Data.ASN1.BitArray
 import Data.Certificate.X509.Internal
+import Control.Monad.Error
 
 type ExtensionRaw = (OID, Bool, [ASN1])
 
@@ -110,9 +111,10 @@
         extDecode l = runParseASN1 parse l where
                 parse = do
                         c <- getNextContainer Sequence
-                        return $ ExtSubjectAltName $ map toStringy c
-                toStringy (Other Context 2 b) = BC.unpack b
-                toStringy b                   = error ("not coping with anything else " ++ show b)
+                        r <- sequence $ map toStringy c
+                        return $ ExtSubjectAltName r
+                toStringy (Other Context 2 b) = return $ BC.unpack b
+                toStringy b                   = throwError ("ExtSubjectAltName: not coping with anything else " ++ show b)
 
 data ExtAuthorityKeyId = ExtAuthorityKeyId B.ByteString
         deriving (Show,Eq)
diff --git a/certificate.cabal b/certificate.cabal
--- a/certificate.cabal
+++ b/certificate.cabal
@@ -1,5 +1,5 @@
 Name:                certificate
-Version:             1.3.5
+Version:             1.3.6
 Description:
     Certificates and Key reader/writer
     .
@@ -30,7 +30,7 @@
                    , bytestring
                    , mtl
                    , pem >= 0.1 && < 0.2
-                   , asn1-data >= 0.7.1
+                   , asn1-data >= 0.7.1 && < 0.8.0
                    , crypto-pubkey-types >= 0.2 && < 0.3
                    , cryptohash
                    , containers
