diff --git a/include/polarssl/ecdsa.h b/include/polarssl/ecdsa.h
index 15b90e6..47382e5 100644
--- a/include/polarssl/ecdsa.h
+++ b/include/polarssl/ecdsa.h
@@ -143,6 +143,16 @@
                   int (*f_rng)(void *, unsigned char *, size_t), void *p_rng );
 
 /**
+ * \brief           Set an ECDSA context from an EC key pair
+ *
+ * \param ctx       ECDSA context to set
+ * \param key       EC key to use
+ *
+ * \return          0 on success, or a POLARSSL_ERR_ECP code.
+ */
+int ecdsa_from_keypair( ecdsa_context *ctx, const ecp_keypair *key );
+
+/**
  * \brief           Initialize context
  *
  * \param ctx       Context to initialize
diff --git a/library/bignum.c b/library/bignum.c
index cc4b1f3..b0bbf8f 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -130,6 +130,12 @@
     if( X == Y )
         return( 0 );
 
+    if( Y->p == NULL )
+    {
+        mpi_free( X );
+        return( 0 );
+    }
+
     for( i = Y->n - 1; i > 0; i-- )
         if( Y->p[i] != 0 )
             break;
diff --git a/library/ecdsa.c b/library/ecdsa.c
index 6746233..bdb3567 100644
--- a/library/ecdsa.c
+++ b/library/ecdsa.c
@@ -283,6 +283,20 @@
             ecp_gen_keypair( &ctx->grp, &ctx->d, &ctx->Q, f_rng, p_rng ) );
 }
 
+/*
+ * Set context from an ecp_keypair
+ */
+int ecdsa_from_keypair( ecdsa_context *ctx, const ecp_keypair *key )
+{
+    int ret = ecp_group_copy( &ctx->grp, &key->grp ) ||
+              mpi_copy( &ctx->d, &key->d ) ||
+              ecp_copy( &ctx->Q, &key->Q );
+
+    if( ret != 0 )
+        ecdsa_free( ctx );
+
+    return( ret );
+}
 
 /*
  * Initialize context
