diff --git a/library/ecdh.c b/library/ecdh.c
index 80e9676..f05e2c0 100644
--- a/library/ecdh.c
+++ b/library/ecdh.c
@@ -110,7 +110,6 @@
 
     return( ret );
 }
-#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */
 
 /*
  * Compute shared secret (SEC1 3.3.1)
@@ -123,6 +122,7 @@
     return( ecdh_compute_shared_restartable( grp, z, Q, d,
                                              f_rng, p_rng, NULL ) );
 }
+#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */
 
 /*
  * Initialize context
@@ -201,9 +201,16 @@
         rs_ctx = &ctx->rs;
 #endif
 
+
+#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)
+    if( ( ret = mbedtls_ecdh_gen_public( &ctx->grp, &ctx->d, &ctx->Q,
+                                         f_rng, p_rng ) ) != 0 )
+        return( ret );
+#else
     if( ( ret = ecdh_gen_public_restartable( &ctx->grp, &ctx->d, &ctx->Q,
                                              f_rng, p_rng, rs_ctx ) ) != 0 )
         return( ret );
+#endif
 
     if( ( ret = mbedtls_ecp_tls_write_group( &ctx->grp, &grp_len, buf, blen ) )
                 != 0 )
@@ -287,9 +294,15 @@
         rs_ctx = &ctx->rs;
 #endif
 
+#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)
+    if( ( ret = mbedtls_ecdh_gen_public( &ctx->grp, &ctx->d, &ctx->Q,
+                                         f_rng, p_rng ) ) != 0 )
+        return( ret );
+#else
     if( ( ret = ecdh_gen_public_restartable( &ctx->grp, &ctx->d, &ctx->Q,
                     f_rng, p_rng, rs_ctx ) ) != 0 )
         return( ret );
+#endif
 
     return mbedtls_ecp_tls_write_point( &ctx->grp, &ctx->Q, ctx->point_format,
                                 olen, buf, blen );
@@ -335,11 +348,19 @@
         rs_ctx = &ctx->rs;
 #endif
 
+#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT)
+    if( ( ret = mbedtls_ecdh_compute_shared( &ctx->grp, &ctx->z, &ctx->Qp,
+                                             &ctx->d, f_rng, p_rng ) ) != 0 )
+    {
+        return( ret );
+    }
+#else
     if( ( ret = ecdh_compute_shared_restartable( &ctx->grp,
                     &ctx->z, &ctx->Qp, &ctx->d, f_rng, p_rng, rs_ctx ) ) != 0 )
     {
         return( ret );
     }
+#endif
 
     if( mbedtls_mpi_size( &ctx->z ) > blen )
         return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA );
