diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 0f0f6b5ec0cc97f657f06502cb1b093be5fda5b1..77e56cafb3bda7b02b5c0eaf5a97ec24514884be 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -4026,7 +4026,6 @@ void http_output_thread(void *arg)
 			sock_sendbuf(&session->socket, buf, len, &failed);
 		pthread_mutex_unlock(&session->outbuf_write);
     }
-	pthread_mutex_destroy(&session->outbuf_write);
 	thread_down();
 	sem_post(&session->output_thread_terminated);
 }
@@ -4101,6 +4100,7 @@ void http_session_thread(void* arg)
 			close_socket(&session.socket);
 			sem_wait(&session.output_thread_terminated);
 			RingBufDispose(&session.outbuf);
+			pthread_mutex_destroy(&session->outbuf_write);
 			lprintf(LOG_NOTICE,"%04d !CLIENT BLOCKED in host.can: %s", session.socket, host_name);
 			thread_down();
 			session_threads--;
@@ -4113,6 +4113,7 @@ void http_session_thread(void* arg)
 		close_socket(&session.socket);
 		sem_wait(&session.output_thread_terminated);
 		RingBufDispose(&session.outbuf);
+		pthread_mutex_destroy(&session->outbuf_write);
 		lprintf(LOG_NOTICE,"%04d !CLIENT BLOCKED in ip.can: %s", session.socket, session.host_ip);
 		thread_down();
 		session_threads--;
@@ -4225,6 +4226,7 @@ void http_session_thread(void* arg)
 	sem_wait(&session.output_thread_terminated);
 	sem_destroy(&session.output_thread_terminated);
 	RingBufDispose(&session.outbuf);
+	pthread_mutex_destroy(&session->outbuf_write);
 
 	active_clients--;
 	update_clients();