diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index bfe8749..1bd4d66 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -1561,7 +1561,7 @@
 #if defined(MBEDTLS_X509_CRT_PARSE_C)
     mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default;
 #endif
-    mbedtls_entropy_context entropy;
+    mbedtls_entropy_context *entropy = NULL;
 #if defined(MBEDTLS_CTR_DRBG_C)
     mbedtls_ctr_drbg_context *ctr_drbg = NULL;
 #else
@@ -2295,6 +2295,7 @@
 
     ssl         = mbedtls_calloc( 1, sizeof( *ssl ) );
     conf        = mbedtls_calloc( 1, sizeof( *conf ) );
+    entropy     = mbedtls_calloc( 1, sizeof( *entropy) );
 #if defined(MBEDTLS_X509_CRT_PARSE_C)
     cacert      = mbedtls_calloc( 1, sizeof( *cacert ) );
     srvcert     = mbedtls_calloc( 1, sizeof( *srvcert ) );
@@ -2324,7 +2325,7 @@
     mbedtls_net_init( &listen_fd );
     mbedtls_ssl_init( ssl );
     mbedtls_ssl_config_init( conf );
-    mbedtls_entropy_init( &entropy );
+    mbedtls_entropy_init( entropy );
 #if defined(MBEDTLS_CTR_DRBG_C)
     mbedtls_ctr_drbg_init( ctr_drbg );
 #else
@@ -2356,7 +2357,7 @@
     mbedtls_ssl_cookie_init( &cookie_ctx );
 #endif
 
-    if( ssl         == NULL ||
+    if( ssl         == NULL || conf     == NULL ||
 #if defined(MBEDTLS_X509_CRT_PARSE_C)
         cacert      == NULL || srvcert  == NULL ||
         pkey        == NULL || srvcert2 == NULL ||
@@ -2376,7 +2377,7 @@
 #else
         hmac_drbg   == NULL ||
 #endif
-        conf        == NULL)
+        entropy     == NULL)
     {
         mbedtls_printf( "Initial allocations failed!\n" );
         goto exit;
@@ -2508,7 +2509,7 @@
 
 #if defined(MBEDTLS_CTR_DRBG_C)
     if( ( ret = mbedtls_ctr_drbg_seed( ctr_drbg, mbedtls_entropy_func,
-                                       &entropy, (const unsigned char *) pers,
+                                       entropy, (const unsigned char *) pers,
                                        strlen( pers ) ) ) != 0 )
     {
         mbedtls_printf( " failed\n  ! mbedtls_ctr_drbg_seed returned -0x%x\n",
@@ -2520,7 +2521,7 @@
                                         mbedtls_md_info_from_type(
                                             available_hashes[0] ),
                                         mbedtls_entropy_func,
-                                        &entropy, (const unsigned char *) pers,
+                                        entropy, (const unsigned char *) pers,
                                         strlen( pers ) ) ) != 0 )
     {
         mbedtls_printf( " failed\n  ! mbedtls_ctr_drbg_seed returned -0x%x\n",
@@ -3977,7 +3978,7 @@
 #else
     mbedtls_hmac_drbg_free( hmac_drbg );
 #endif
-    mbedtls_entropy_free( &entropy );
+    mbedtls_entropy_free( entropy );
 
 #if defined(MBEDTLS_SSL_CACHE_C)
     mbedtls_ssl_cache_free( cache );
@@ -3999,6 +4000,7 @@
 
     mbedtls_free( ssl );
     mbedtls_free( conf );
+    mbedtls_free( entropy );
 #if defined(MBEDTLS_X509_CRT_PARSE_C)
     mbedtls_free( cacert );
     mbedtls_free( srvcert );
