diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c
index df8dfdf..69d9c66 100644
--- a/library/ssl_tls13_client.c
+++ b/library/ssl_tls13_client.c
@@ -1620,7 +1620,14 @@
  */
 static int ssl_tls13_write_client_finished( mbedtls_ssl_context *ssl )
 {
-    return ( mbedtls_ssl_tls13_write_finished_message( ssl ) );
+    int ret;
+
+    ret = mbedtls_ssl_tls13_write_finished_message( ssl );
+    if( ret != 0 )
+        return( ret );
+
+    mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_FLUSH_BUFFERS );
+    return( 0 );
 }
 
 /*
diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c
index 064da54..97ef33d 100644
--- a/library/ssl_tls13_generic.c
+++ b/library/ssl_tls13_generic.c
@@ -1046,21 +1046,8 @@
 
 static int ssl_tls13_finalize_finished_message( mbedtls_ssl_context *ssl )
 {
-
-#if defined(MBEDTLS_SSL_CLI_C)
-    if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT )
-    {
-        ((void) ssl);
-
-        mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_FLUSH_BUFFERS );
-    }
-    else
-#endif /* MBEDTLS_SSL_CLI_C */
-    {
-        ((void) ssl);
-        /* Should never happen */
-        return( MBEDTLS_ERR_SSL_INTERNAL_ERROR );
-    }
+    // TODO: Add back resumption keys calculation after MVP.
+    ((void) ssl);
 
     return( 0 );
 }
@@ -1071,7 +1058,11 @@
                                                   size_t *olen )
 {
     size_t verify_data_len = ssl->handshake->state_local.finished_out.digest_len;
-
+    /*
+     * struct {
+     *     opaque verify_data[Hash.length];
+     * } Finished;
+     */
     MBEDTLS_SSL_CHK_BUF_PTR( buf, end, verify_data_len );
 
     memcpy( buf, ssl->handshake->state_local.finished_out.digest,
@@ -1090,12 +1081,6 @@
 
     MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write finished message" ) );
 
-    if( !ssl->handshake->state_local.finished_out.preparation_done )
-    {
-        MBEDTLS_SSL_PROC_CHK( ssl_tls13_prepare_finished_message( ssl ) );
-        ssl->handshake->state_local.finished_out.preparation_done = 1;
-    }
-
     MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_start_handshake_msg( ssl,
                               MBEDTLS_SSL_HS_FINISHED, &buf, &buf_len ) );
 
