diff --git a/src/sbbs3/js_mqtt.c b/src/sbbs3/js_mqtt.c
index 0efc7a7544bd2fd860ed808b49d56b41be2e3dea..cdae1c80e7676f4abc3834de52c4afb3fd24455d 100644
--- a/src/sbbs3/js_mqtt.c
+++ b/src/sbbs3/js_mqtt.c
@@ -40,8 +40,8 @@ static void js_finalize_mqtt(JSContext* cx, JSObject* obj)
 	if((p = (private_t*)JS_GetPrivate(cx,obj)) == NULL)
 		return;
 
-
 	if(p->handle != NULL) {
+		mosquitto_disconnect(p->handle);
 		mosquitto_loop_stop(p->handle, /* force: */true);
 		mosquitto_destroy(p->handle);
 	}