diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index b778b658f936f07fe79ce468a34a70849be3b5bc..c72bfa74d80e8f022fd5991eb6ce6bdac8363371 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -5096,6 +5096,11 @@ void DLLCALL web_server(void* arg)
 			served++;
 		}
 
+		if(session) {
+			pthread_mutex_unlock(&session->struct_filled);
+			session=NULL;
+		}
+
 		/* Wait for active clients to terminate */
 		if(active_clients) {
 			lprintf(LOG_DEBUG,"%04d Waiting for %d active clients to disconnect..."