diff --git a/lib/modules/SSL.pmod/handshake.pike b/lib/modules/SSL.pmod/handshake.pike
index f0e7536ca69c699152fbc595e6967df4fd8ac353..d7490a27e7856885be745884723a98a3aae06a06 100644
--- a/lib/modules/SSL.pmod/handshake.pike
+++ b/lib/modules/SSL.pmod/handshake.pike
@@ -1091,6 +1091,7 @@ int(-1..1) handle_handshake(int type, string(0..255) data, string(0..255) raw)
 	  challenge = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + challenge;
 	client_random = challenge[sizeof (challenge) - 32..];
 
+	session = context->new_session();
 	{
 	  int(-1..0) err = reply_new_session(cipher_suites,
 					     ({ COMPRESSION_null }) );