diff --git a/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod b/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod
index 3a91b37aff66dfd0d50fa13f4350419d61c0368a..8c4886aeb4a9e1636f9bab2e5c6db00de2a8921b 100644
--- a/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod
+++ b/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod
@@ -14,8 +14,9 @@ import Standards.ASN1.Encode;
 string rsa_private_key(object rsa)
 {
   return asn1_sequence(@ Array.map(
-    ({ 0, rsa->n, rsa->e, rsa->d, rsa->p, rsa->q,
-       rsa->d % (rsa->p - 1), rsa->d, (rsa->q -1),
+    ({ 0, rsa->n, rsa->e, rsa->d,
+       rsa->p, rsa->q,
+       rsa->d % (rsa->p - 1), rsa->d % (rsa->q -1),
        rsa->q->invert(rsa->p) % rsa->p
     }),
     asn1_integer))->der();