diff --git a/lib/modules/Crypto/rsa.pike b/lib/modules/Crypto/rsa.pike
index 92b6de1bc3dd9abcee2c7b65b2348dc0e2a97352..71daa852e1ef922bb25da8fc28fb4d43239bec80 100644
--- a/lib/modules/Crypto/rsa.pike
+++ b/lib/modules/Crypto/rsa.pike
@@ -15,7 +15,7 @@ int size;
 
 int encrypt_mode; /* For block cipher compatible functions */
 
-void set_public_key(bignum modulo, bignum pub)
+object set_public_key(bignum modulo, bignum pub)
 {
   n = modulo;
   e = pub;
@@ -23,11 +23,13 @@ void set_public_key(bignum modulo, bignum pub)
   if (size < 12)
     throw( ({ "Crypto.rsa->set_public_key: Too small modulo.\n",
 		backtrace() }) );
+  return this_object();
 }
 
-void set_private_key(bignum priv)
+object set_private_key(bignum priv)
 {
   d = priv;
+  return this_object();
 }
 
 int query_blocksize() { return size - 3; }