diff --git a/exec/ircd.js b/exec/ircd.js
index 99ac0e3e1299188623a486016265cec7387f9a08..45a9ab861150e7c9c766eb19cb165cbd6978e81d 100644
--- a/exec/ircd.js
+++ b/exec/ircd.js
@@ -1009,6 +1009,7 @@ for (pl in PLines) {
 }
 
 js.branch_limit=0; // we're not an infinite loop.
+js.auto_terminate=false; // we handle our own termination requests
 
 ///// Main Loop /////
 while (!server.terminated) {
diff --git a/exec/newslink.js b/exec/newslink.js
index cd620a2ee95e7b0bb04eb877ae8fc1f94fb0e437..8b721f18d7d444ca32b818d9f1be5b5da3b340ff 100644
--- a/exec/newslink.js
+++ b/exec/newslink.js
@@ -84,6 +84,8 @@ for(i=0;i<argc;i++) {
 
 if(this.js==undefined) 		// v3.10?
 	js = { terminated: false };
+else
+	js.auto_terminate = false;
 
 // Write a string to the server socket
 function write(str)