diff --git a/Codec/Encryption/OpenPGP/Serialize.hs b/Codec/Encryption/OpenPGP/Serialize.hs
--- a/Codec/Encryption/OpenPGP/Serialize.hs
+++ b/Codec/Encryption/OpenPGP/Serialize.hs
@@ -1183,6 +1183,7 @@
 putSignaturePayload :: SignaturePayload -> Put
 putSignaturePayload (SigV3 st ctime eok pka ha left16 mpis) = do
     putWord8 3
+    putWord8 5 -- hashlen
     put st
     putWord32be ctime
     putByteString (unEOKI eok)
diff --git a/hOpenPGP.cabal b/hOpenPGP.cabal
--- a/hOpenPGP.cabal
+++ b/hOpenPGP.cabal
@@ -1,5 +1,5 @@
 Name:                hOpenPGP
-Version:             0.11.1
+Version:             0.11.2
 Synopsis:            native Haskell implementation of OpenPGP (RFC4880)
 Description:         native Haskell implementation of OpenPGP (RFC4880)
 Homepage:            http://floss.scru.org/hOpenPGP/
@@ -136,6 +136,7 @@
   , tests/data/16bitcksum.seckey
   , tests/data/aes256-sha512.seckey
   , tests/data/unencrypted.seckey
+  , tests/data/v3-genericcert.sig
 
 Cabal-version:       >= 1.10
 
@@ -234,4 +235,4 @@
 source-repository this
   type:     git
   location: git://git.debian.org/users/clint/hOpenPGP.git
-  tag:      v0.11.1
+  tag:      v0.11.2
diff --git a/tests/data/v3-genericcert.sig b/tests/data/v3-genericcert.sig
new file mode 100644
Binary files /dev/null and b/tests/data/v3-genericcert.sig differ
diff --git a/tests/suite.hs b/tests/suite.hs
--- a/tests/suite.hs
+++ b/tests/suite.hs
@@ -225,6 +225,7 @@
    , testCase "uncompressed-ops-dsa.gpg" (testSerialization "uncompressed-ops-dsa.gpg")
    , testCase "uncompressed-ops-rsa.gpg" (testSerialization "uncompressed-ops-rsa.gpg")
    , testCase "simple.seckey" (testSerialization "simple.seckey")
+   , testCase "v3-genericcert.sig" (testSerialization "v3-genericcert.sig")
    ],
   testGroup "KeyID/fingerprint group" [
      testCase "v3 key" (testKeyIDandFingerprint "v3.key" "C7261095/CBD9 F412 6807 E405 CC2D  2712 1DF5 E86E  ")
