Fix bug with NewSessionTicket and non-blocking I/O
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index 7048f4d..99f7256 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -3003,15 +3003,18 @@
 
     ssl->out_msglen = 10 + tlen;
 
+    /*
+     * Morally equivalent to updating ssl->state, but NewSessionTicket and
+     * ChangeCipherSpec share the same state.
+     */
+    ssl->handshake->new_session_ticket = 0;
+
     if( ( ret = ssl_write_record( ssl ) ) != 0 )
     {
         SSL_DEBUG_RET( 1, "ssl_write_record", ret );
         return( ret );
     }
 
-    /* No need to remember writing a NewSessionTicket any more */
-    ssl->handshake->new_session_ticket = 0;
-
     SSL_DEBUG_MSG( 2, ( "<= write new session ticket" ) );
 
     return( 0 );