diff --git a/library/ssl_cli.c b/library/ssl_cli.c
index 822b069..07d5825 100644
--- a/library/ssl_cli.c
+++ b/library/ssl_cli.c
@@ -4259,6 +4259,9 @@
     {
         case MBEDTLS_SSL_HELLO_REQUEST:
             ssl->state = MBEDTLS_SSL_CLIENT_HELLO;
+#if defined(MBEDTLS_EARLY_KEY_COMPUTATION)
+            int ecdhe_computed = 0;
+#endif /* MBEDTLS_EARLY_KEY_COMPUTATION */
             break;
 
        /*
@@ -4277,11 +4280,16 @@
         */
        case MBEDTLS_SSL_SERVER_HELLO:
 #if defined(MBEDTLS_EARLY_KEY_COMPUTATION) && defined(MBEDTLS_USE_TINYCRYPT)
-            ret = uECC_make_key( ssl->handshake->ecdh_publickey, ssl->handshake->ecdh_privkey );
-            if( ret == UECC_FAULT_DETECTED )
-                return( MBEDTLS_ERR_PLATFORM_FAULT_DETECTED );
-            if( ret != UECC_SUCCESS )
-                return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED );
+           /* Make sure that the ECDHE pre-computation is only done once */
+           if( ecdhe_computed == 0 )
+           {
+               ret = uECC_make_key( ssl->handshake->ecdh_publickey, ssl->handshake->ecdh_privkey );
+               if( ret == UECC_FAULT_DETECTED )
+                   return( MBEDTLS_ERR_PLATFORM_FAULT_DETECTED );
+               if( ret != UECC_SUCCESS )
+                   return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED );
+               ecdhe_computed = 1;
+           }
 #endif /* MBEDTLS_EARLY_KEY_COMPUTATION && MBEDTLS_USE_TINYCRYPT */
 
            ret = ssl_parse_server_hello( ssl );
