The default ECDH curve list will be dynamically built in the ecp module based on ecp_supported_curves[].
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 79b4bb7..dd84daa 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -3325,46 +3325,6 @@
  */
 int ssl_init( ssl_context *ssl )
 {
-
-#if defined(POLARSSL_KEY_EXCHANGE__SOME__ECDHE_ENABLED)
-    /*
-    * ECDHE allowed curves and preference list
-    *
-    * We start with the most secure curves. From the same size curves, we prefer
-    * the SECP ones because they are much faster.
-    *
-    * TODO: Add the Montgomery curves
-    */
-    static const ecp_group_id default_curve_list[] =
-    {
-#if defined(POLARSSL_ECP_DP_SECP521R1_ENABLED)
-        POLARSSL_ECP_DP_SECP521R1,
-#endif
-#if defined(POLARSSL_ECP_DP_BP512R1_ENABLED)
-        POLARSSL_ECP_DP_BP512R1,
-#endif
-#if defined(POLARSSL_ECP_DP_SECP384R1_ENABLED)
-        POLARSSL_ECP_DP_SECP384R1,
-#endif
-#if defined(POLARSSL_ECP_DP_BP384R1_ENABLED)
-        POLARSSL_ECP_DP_BP384R1,
-#endif
-#if defined(POLARSSL_ECP_DP_SECP256R1_ENABLED)
-        POLARSSL_ECP_DP_SECP256R1,
-#endif
-#if defined(POLARSSL_ECP_DP_BP256R1_ENABLED)
-        POLARSSL_ECP_DP_BP256R1,
-#endif
-#if defined(POLARSSL_ECP_DP_SECP224R1_ENABLED)
-        POLARSSL_ECP_DP_SECP224R1,
-#endif
-#if defined(POLARSSL_ECP_DP_SECP192R1_ENABLED)
-        POLARSSL_ECP_DP_SECP192R1,
-#endif
-        POLARSSL_ECP_DP_NONE
-    };
-#endif
-
     int ret;
     int len = SSL_BUFFER_LEN;
 
@@ -3426,7 +3386,7 @@
 
 #if defined(POLARSSL_KEY_EXCHANGE__SOME__ECDHE_ENABLED) && \
     defined(POLARSSL_SSL_SET_CURVES)
-    ssl->curve_list = default_curve_list;
+    ssl->curve_list = ecp_get_default_echd_curve_list( );
 #endif
 
     if( ( ret = ssl_handshake_init( ssl ) ) != 0 )