diff --git a/src/modules/_Crypto/rsa.c b/src/modules/_Crypto/rsa.c
index ee9b6e6e33a1acd912ca52445c2e7e7478f96edc..35494357bf9e65b4ad736cda8109a9136a0b7e66 100644
--- a/src/modules/_Crypto/rsa.c
+++ b/src/modules/_Crypto/rsa.c
@@ -1,5 +1,5 @@
 /*
- * $Id: rsa.c,v 1.19 2000/06/13 19:33:01 grubba Exp $
+ * $Id: rsa.c,v 1.20 2000/06/20 15:15:43 grubba Exp $
  *
  * Glue to RSA BSAFE's RSA implementation.
  *
@@ -31,7 +31,7 @@
 
 #include <bsafe.h>
 
-RCSID("$Id: rsa.c,v 1.19 2000/06/13 19:33:01 grubba Exp $");
+RCSID("$Id: rsa.c,v 1.20 2000/06/20 15:15:43 grubba Exp $");
 
 struct pike_rsa_data
 {
@@ -238,7 +238,11 @@ static void f_set_private_key(INT32 args)
   struct array *extra = NULL;
   int code;
 
-  get_all_args("set_private_key", args, "%o%a", &priv, &extra);
+  if (args > 1) {
+    get_all_args("set_private_key", args, "%o%a", &priv, &extra);
+  } else {
+    get_all_args("set_private_key", args, "%o", &priv);
+  }
 
   if (THIS->private_key) {
     B_DestroyKeyObject(&(THIS->private_key));