diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index a9f84d4..c2daeb3 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -3409,6 +3409,17 @@
 }
 
 #if defined(MBEDTLS_SSL_PROTO_DTLS)
+
+static int ssl_hs_is_proper_fragment( mbedtls_ssl_context *ssl )
+{
+    if( ssl->in_msglen < ssl->in_hslen ||
+        memcmp( ssl->in_msg + 6, "\0\0\0",        3 ) != 0 ||
+        memcmp( ssl->in_msg + 9, ssl->in_msg + 1, 3 ) != 0 )
+    {
+        return( 1 );
+    }
+    return( 0 );
+}
 /*
  * Mark bits in bitmask (used for DTLS HS reassembly)
  */
@@ -3636,9 +3647,6 @@
 
     memcpy( ssl->in_msg, ssl->handshake->hs_msg, ssl->in_hslen );
 
-    mbedtls_free( ssl->handshake->hs_msg );
-    ssl->handshake->hs_msg = NULL;
-
     MBEDTLS_SSL_DEBUG_BUF( 3, "reassembled handshake message",
                    ssl->in_msg, ssl->in_hslen );
 
@@ -3646,6 +3654,7 @@
 }
 #endif /* MBEDTLS_SSL_PROTO_DTLS */
 
+
 int mbedtls_ssl_prepare_handshake_record( mbedtls_ssl_context *ssl )
 {
     if( ssl->in_msglen < mbedtls_ssl_hs_hdr_len( ssl ) )
@@ -3713,12 +3722,7 @@
         }
         /* Wait until message completion to increment in_msg_seq */
 
-        /* Reassemble if current message is fragmented or reassembly is
-         * already in progress */
-        if( ssl->in_msglen < ssl->in_hslen ||
-            memcmp( ssl->in_msg + 6, "\0\0\0",        3 ) != 0 ||
-            memcmp( ssl->in_msg + 9, ssl->in_msg + 1, 3 ) != 0 ||
-            ( ssl->handshake != NULL && ssl->handshake->hs_msg != NULL ) )
+        if( ssl_hs_is_proper_fragment( ssl ) == 1 )
         {
             MBEDTLS_SSL_DEBUG_MSG( 2, ( "found fragmented DTLS handshake message" ) );
 
@@ -3756,6 +3760,13 @@
         ssl->handshake != NULL )
     {
         ssl->handshake->in_msg_seq++;
+
+        /* Clear up handshake reassembly structure, if any. */
+        if( ssl->handshake->hs_msg != NULL )
+        {
+            mbedtls_free( ssl->handshake->hs_msg );
+            ssl->handshake->hs_msg = NULL;
+        }
     }
 #endif
 }
