diff --git a/exec/imapservice.js b/exec/imapservice.js
index f112694ba1d575cb0b5fb9d4a4813eb5c68aaf06..3d3c50f15af44d4e7c0191517825545355ed0228 100644
--- a/exec/imapservice.js
+++ b/exec/imapservice.js
@@ -1409,8 +1409,13 @@ function open_cfg(usr)
 
 function lock_cfg()
 {
-	while(!cfgfile.lock(0, 1))
+	while(!cfgfile.lock(0, 1)) {
+		if (!client.socket.is_connected)
+			exit(0);
+		if (js.termianted)
+			exit(0);
 		mswait(10);
+	}
 }
 
 function unlock_cfg()