diff --git a/include/polarssl/ecp.h b/include/polarssl/ecp.h
index ae45c6e..1d18b14 100644
--- a/include/polarssl/ecp.h
+++ b/include/polarssl/ecp.h
@@ -76,7 +76,7 @@
 /**
  * List of supported curves
  */
-extern ecp_curve_info ecp_supported_curves[];
+extern const ecp_curve_info ecp_supported_curves[];
 
 /**
  * \brief           ECP point structure (jacobian coordinates)
diff --git a/library/ecp.c b/library/ecp.c
index b62c4be..47216e0 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -73,7 +73,7 @@
  *  - TLS NamedCurve number (RFC 4492 section 5.1.1)
  *  - size in bits
  */
-ecp_curve_info ecp_supported_curves[] =
+const ecp_curve_info ecp_supported_curves[] =
 {
 #if defined(POLARSSL_ECP_DP_SECP521R1_ENABLED)
     { POLARSSL_ECP_DP_SECP521R1,    25,     521, },
@@ -743,7 +743,7 @@
  */
 ecp_group_id ecp_grp_id_from_named_curve( uint16_t name )
 {
-    ecp_curve_info *curve_info;
+    const ecp_curve_info *curve_info;
 
     for( curve_info = ecp_supported_curves;
          curve_info->grp_id != POLARSSL_ECP_DP_NONE;
@@ -761,7 +761,7 @@
  */
 uint16_t ecp_named_curve_from_grp_id( ecp_group_id id )
 {
-    ecp_curve_info *curve_info;
+    const ecp_curve_info *curve_info;
 
     for( curve_info = ecp_supported_curves;
          curve_info->grp_id != POLARSSL_ECP_DP_NONE;
diff --git a/library/ssl_cli.c b/library/ssl_cli.c
index 4cc28c3..be4d011 100644
--- a/library/ssl_cli.c
+++ b/library/ssl_cli.c
@@ -233,7 +233,7 @@
     unsigned char *p = buf;
     unsigned char elliptic_curve_list[20];
     size_t elliptic_curve_len = 0;
-    ecp_curve_info *curve;
+    const ecp_curve_info *curve;
     ((void) ssl);
 
     *olen = 0;
