diff --git a/rsa.c b/rsa.c
index bfc31348912a4ba8c5880ca29adb06925b8637e5..6dc8303352309298ee7bda73bda400a8d9e54bd8 100644
--- a/rsa.c
+++ b/rsa.c
@@ -94,6 +94,7 @@ rsa_prepare_public_key(struct rsa_public_key *key)
 void
 rsa_init_private_key(struct rsa_private_key *key)
 {
+  mpz_init(key->d);
   mpz_init(key->p);
   mpz_init(key->q);
   mpz_init(key->a);
@@ -108,6 +109,7 @@ rsa_init_private_key(struct rsa_private_key *key)
 void
 rsa_clear_private_key(struct rsa_private_key *key)
 {
+  mpz_clear(key->d);
   mpz_clear(key->p);
   mpz_clear(key->q);
   mpz_clear(key->a);