diff --git a/library/lmots.c b/library/lmots.c
index a172f77..788063c 100644
--- a/library/lmots.c
+++ b/library/lmots.c
@@ -700,7 +700,7 @@
                             NULL, ( unsigned char * )y_hashed_digits );
     if( ret )
     {
-        return( ret );
+        goto exit;
     }
 
     ret = public_key_from_hashed_digit_array( &priv_ctx->params,
@@ -708,7 +708,7 @@
                                               ctx->public_key );
     if( ret )
     {
-        return( ret );
+        goto exit;
     }
 
     memcpy( &ctx->params, &priv_ctx->params,
@@ -716,6 +716,9 @@
 
     ctx->have_public_key = 1;
 
+exit:
+    mbedtls_platform_zeroize( y_hashed_digits, sizeof( y_hashed_digits ) );
+
     return( ret );
 }
 
@@ -765,14 +768,14 @@
                                             tmp_digit_array );
     if( ret )
     {
-        return( ret );
+        goto exit;
     }
 
     ret = hash_digit_array( &ctx->params, ( unsigned char * )ctx->private_key,
                             NULL, tmp_digit_array, ( unsigned char * )tmp_sig );
     if( ret )
     {
-        return( ret );
+        goto exit;
     }
 
     mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type,
@@ -810,7 +813,13 @@
         *sig_len = MBEDTLS_LMOTS_SIG_LEN(ctx->params.type);
     }
 
-    return( 0 );
+    ret = 0;
+
+exit:
+    mbedtls_platform_zeroize( tmp_digit_array, sizeof( tmp_digit_array ) );
+    mbedtls_platform_zeroize( tmp_sig, sizeof( tmp_sig ) );
+
+    return ( ret );
 }
 
 #endif /* defined(MBEDTLS_LMS_PRIVATE) */
diff --git a/library/lms.c b/library/lms.c
index f30f349..876deeb 100644
--- a/library/lms.c
+++ b/library/lms.c
@@ -516,7 +516,7 @@
     ret = calculate_merkle_tree( ctx, ( unsigned char * )tree );
     if( ret != 0 )
     {
-        return( ret );
+        goto exit;
     }
 
     for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type);
@@ -531,7 +531,12 @@
         curr_node_id >>=1;
     }
 
-    return( 0 );
+    ret = 0;
+
+exit:
+    mbedtls_platform_zeroize( tree, sizeof( tree ) );
+
+    return( ret );
 }
 
 void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx )
@@ -688,7 +693,7 @@
     ret = calculate_merkle_tree( priv_ctx, ( unsigned char * )tree );
     if( ret != 0 )
     {
-        return( ret );
+        goto exit;
     }
 
     /* Root node is always at position 1, due to 1-based indexing */
@@ -697,7 +702,12 @@
 
     ctx->have_public_key = 1;
 
-    return( 0 );
+    ret = 0;
+
+exit:
+    mbedtls_platform_zeroize( tree, sizeof( tree ) );
+
+    return( ret );
 }
 
 
