diff --git a/Data/X509/PublicKey.hs b/Data/X509/PublicKey.hs
--- a/Data/X509/PublicKey.hs
+++ b/Data/X509/PublicKey.hs
@@ -132,7 +132,7 @@
                         }, xs2)
                 _ ->
                     Left $ "fromASN1: X509.PubKey: unknown EC format: " ++ show xs
-        | otherwise = error ("unknown public key OID: " ++ show pkalg)
+        | otherwise = Left $ "fromASN1: unknown public key OID: " ++ show pkalg
       where decodeASN1Err format bits xs2 f =
                 case decodeASN1' BER (bitArrayGetData bits) of
                     Left err -> Left ("fromASN1: X509.PubKey " ++ format ++ " bitarray cannot be parsed: " ++ show err)
diff --git a/x509.cabal b/x509.cabal
--- a/x509.cabal
+++ b/x509.cabal
@@ -1,5 +1,5 @@
 Name:                x509
-Version:             1.6.3
+Version:             1.6.4
 Description:         X509 reader and writer
 License:             BSD3
 License-file:        LICENSE
