diff --git a/src/ngircd/conn-ssl.c b/src/ngircd/conn-ssl.c
index c9bbdd2..e559638 100644
--- a/src/ngircd/conn-ssl.c
+++ b/src/ngircd/conn-ssl.c
@@ -316,11 +316,17 @@ ConnSSL_InitLibrary( void )
 		    Conf_SSLOptions.CipherList);
 		goto out;
 	}
+	if (!SSL_CTX_set_session_id_context(newctx, PACKAGE_NAME,
+					    strlen(PACKAGE_NAME))) {
+		Log(LOG_ERR, "Failed to initialize OpenSSL session ID context!");
+		goto out;
+	}
 
 	SSL_CTX_set_options(newctx, SSL_OP_SINGLE_DH_USE|SSL_OP_NO_SSLv2);
 	SSL_CTX_set_mode(newctx, SSL_MODE_ENABLE_PARTIAL_WRITE);
 	SSL_CTX_set_verify(newctx, SSL_VERIFY_PEER|SSL_VERIFY_CLIENT_ONCE,
 			   Verify_openssl);
+
 	SSL_CTX_free(ssl_ctx);
 	ssl_ctx = newctx;
 	Log(LOG_INFO, "%s initialized.", SSLeay_version(SSLEAY_VERSION));
@@ -478,6 +484,12 @@ ConnSSL_Init_SSL(CONNECTION *c)
 		LogOpenSSLError("Failed to create SSL structure", NULL);
 		return false;
 	}
+	if (!SSL_set_session_id_context(c->ssl_state.ssl, PACKAGE_NAME,
+					strlen(PACKAGE_NAME))) {
+		LogOpenSSLError("Failed to set SSL session ID context", NULL);
+		ConnSSL_Free(c);
+		return false;
+	}
 	Conn_OPTION_ADD(c, CONN_SSL);
 
 	ret = SSL_set_fd(c->ssl_state.ssl, c->sock);
