diff --git a/docs/protocol/layers/message.md b/docs/protocol/layers/message.md
index 5c07453acc6c6d765038b2ad1f92e3ab7b25ee85..e762340b3b63ea9a5c4af1e24c21ee005df97b30 100644
--- a/docs/protocol/layers/message.md
+++ b/docs/protocol/layers/message.md
@@ -7,10 +7,10 @@ It starts off in `HANDSHAKE` state.
 
 ## Handshake State
 
-In this state, messages are encoded/decoded according to the [Handshake](../serialization/handshake.html)
+In this state, messages are encoded/decoded according to the [Handshake](../serialization/handshake.md)
 specification.
 
-[![Init Diagram](../../assets/images/message_init.png)]((../../assets/images/message_init.png))
+[![Init Diagram](../../assets/images/message_init.png)](../../assets/images/message_init.png)
 
 Client and core exchange messages according to the diagram described above, when
 a ClientLoginAck and SessionInit have been received, the state advances into