diff --git a/servers/slapd/main.c b/servers/slapd/main.c
index 2da444a9fc09ff18b0aa6a5112ea7405566c9a66..e9781c60bb9e2077f3e8f97b55d50cdcee0368e7 100644
--- a/servers/slapd/main.c
+++ b/servers/slapd/main.c
@@ -344,6 +344,7 @@ int main( int argc, char **argv )
 #ifdef HAVE_TLS
 		case 'T':  /* Bind on TLS port */
 			use_tls_port = 1;
+			break;
 #endif
 		default:
 			usage( argv[0] );
@@ -382,6 +383,11 @@ int main( int argc, char **argv )
 		goto destroy;
 	}
 
+#ifdef HAVE_TLS
+	ldap_pvt_tls_init();
+	ldap_pvt_tls_init_def_ctx();
+#endif
+
 	if ( read_config( configfile ) != 0 ) {
 		rc = 1;
 		SERVICE_EXIT( ERROR_SERVICE_SPECIFIC_ERROR, 19 );