diff --git a/library/ecp.c b/library/ecp.c
index 0e4be10..8e162e7 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -527,7 +527,6 @@
     int ret;
 
     MPI_CHK( mpi_read_string( &grp->P, radix, p ) );
-    MPI_CHK( mpi_add_int( &grp->A, &grp->P, -3 ) );
     MPI_CHK( mpi_read_string( &grp->B, radix, b ) );
     MPI_CHK( ecp_point_read_string( &grp->G, radix, gx, gy ) );
     MPI_CHK( mpi_read_string( &grp->N, radix, n ) );
@@ -868,7 +867,17 @@
     MPI_CHK( mpi_mul_mpi( &Z3,  &P->Z,  &P->Z   ) ); MOD_MUL( Z3 );
     MPI_CHK( mpi_mul_mpi( &X3,  &Z3,    &Z3     ) ); MOD_MUL( X3 );
     MPI_CHK( mpi_mul_int( &T3,  &T3,    3       ) ); MOD_ADD( T3 );
-    MPI_CHK( mpi_mul_mpi( &X3,  &X3,    &grp->A ) ); MOD_MUL( X3 );
+
+    /* Special case for A = -3 */
+    if( grp->A.p == NULL )
+    {
+        MPI_CHK( mpi_mul_int( &X3, &X3, 3 ) );
+        X3.s = -1; /* mpi_mul_int doesn't handle negative numbers */
+        MOD_SUB( X3 );
+    }
+    else
+        MPI_CHK( mpi_mul_mpi( &X3,  &X3,    &grp->A ) ); MOD_MUL( X3 );
+
     MPI_CHK( mpi_add_mpi( &T3,  &T3,    &X3     ) ); MOD_ADD( T3 );
     MPI_CHK( mpi_mul_mpi( &X3,  &T3,    &T3     ) ); MOD_MUL( X3 );
     MPI_CHK( mpi_sub_mpi( &X3,  &X3,    &T1     ) ); MOD_SUB( X3 );
@@ -1633,7 +1642,17 @@
      */
     MPI_CHK( mpi_mul_mpi( &YY,  &pt->Y,   &pt->Y  ) );  MOD_MUL( YY  );
     MPI_CHK( mpi_mul_mpi( &RHS, &pt->X,   &pt->X  ) );  MOD_MUL( RHS );
-    MPI_CHK( mpi_add_mpi( &RHS, &RHS,     &grp->A ) );  MOD_ADD( RHS );
+
+    /* Special case for A = -3 */
+    if( grp->A.p == NULL )
+    {
+        MPI_CHK( mpi_sub_int( &RHS, &RHS, 3       ) );  MOD_SUB( RHS );
+    }
+    else
+    {
+        MPI_CHK( mpi_add_mpi( &RHS, &RHS, &grp->A ) );  MOD_ADD( RHS );
+    }
+
     MPI_CHK( mpi_mul_mpi( &RHS, &RHS,     &pt->X  ) );  MOD_MUL( RHS );
     MPI_CHK( mpi_add_mpi( &RHS, &RHS,     &grp->B ) );  MOD_ADD( RHS );
 
diff --git a/library/ecp_curves.c b/library/ecp_curves.c
index f7b5eb9..f29b687 100644
--- a/library/ecp_curves.c
+++ b/library/ecp_curves.c
@@ -451,6 +451,17 @@
 }
 
 /*
+ * Set an MPI to static value 1
+ */
+static inline void ecp_mpi_set1( mpi *X )
+{
+    static t_uint one[] = { 1 };
+    X->s = 1;
+    X->n = 1;
+    X->p = one;
+}
+
+/*
  * Make group available from embedded constants
  */
 static int ecp_group_load( ecp_group *grp,
@@ -461,28 +472,20 @@
                            const t_uint *gy, size_t gylen,
                            const t_uint *n,  size_t nlen)
 {
-    int ret;
-
     ecp_mpi_load( &grp->P, p, plen );
     if( a != NULL )
         ecp_mpi_load( &grp->A, a, alen );
-    else
-        MPI_CHK( mpi_sub_int( &grp->A, &grp->P, 3 ) );
     ecp_mpi_load( &grp->B, b, blen );
     ecp_mpi_load( &grp->N, n, nlen );
 
     ecp_mpi_load( &grp->G.X, gx, gxlen );
     ecp_mpi_load( &grp->G.Y, gy, gylen );
-    MPI_CHK( mpi_lset( &grp->G.Z, 1 ) );
+    ecp_mpi_set1( &grp->G.Z );
 
     grp->pbits = mpi_msb( &grp->P );
     grp->nbits = mpi_msb( &grp->N );
 
-cleanup:
-    if( ret != 0 )
-        ecp_group_free( grp );
-
-    return( ret );
+    return( 0 );
 }
 
 #if defined(POLARSSL_ECP_NIST_OPTIM)
