diff --git a/exec/imapservice.js b/exec/imapservice.js
index 9fd9b0a7b0a40dfd41047c500ccd29552d2e04f0..00b65e7b057e4675ac76d4523d78d59d1645f2aa 100644
--- a/exec/imapservice.js
+++ b/exec/imapservice.js
@@ -1549,16 +1549,21 @@ function old_unlock_cfg()
 
 function exit_func()
 {
-	close_sub();
+	try {
+		close_sub();
+	}
+	catch(error) {}
 	if (locked_code !== undefined) {
-		log("At exit, "+locked_code+" is still locked.");
-		unlock_cfg(locked_code);
+		try {
+			log("At exit, "+locked_code+" is still locked.");
+			unlock_cfg(locked_code);
+		}
+		catch(error) {}
 	}
 	try {
 		save_cfg();
 	}
-	catch (error) {
-	}
+	catch (error) {}
 }
 
 function binify(seen)