diff --git a/exec/query_pr.js b/exec/query_pr.js
index 5fc30b2a2050f183d774f5575a46d2bda5c5c8fb..8e7c7e84ea420067ecb51f21511f7e51f6371ca0 100644
--- a/exec/query_pr.js
+++ b/exec/query_pr.js
@@ -65,7 +65,7 @@ if(!gnats.connect())
 	handle_error();
 
 var done=false;
-while(!done) {
+while(!done && bbs.online) {
 	done=set_prlist();
 	if(done)
 		break;
@@ -75,7 +75,7 @@ while(!done) {
 	if(prs.length > 0) {
 		var donelist=false;
 		var c;
-		while(!donelist) {
+		while(!donelist && bbs.online) {
 			for(c=0; c < prs.length; c++) {
 				m=prs[c].match(/^(.{72}) (.{10}) (.{6}) (.{10}) (.{10})\r\n$/);
 				if(m!=undefined && m.index>-1) {
@@ -139,7 +139,7 @@ while(!done) {
 									for(c=0; c<cvals.length; c++)
 										cv[cvals[c]]=true;
 									var doneenum=false;
-									while(!doneenum) {
+									while(!doneenum && bbs.online) {
 										for(c=0; c<vals.length; c++) {
 											if(cv[vals[c]] == undefined || cv[vals[c]]==false)
 												console.uselect(c, "New Values", vals[c], "");
@@ -175,6 +175,8 @@ while(!done) {
 										newval=undefined;
 									break;
 							}
+							if(!bbs.online)
+								newval=undefined;
 							if(newval != undefined) {
 								var reason='';
 								if(!gnats.cmd("FIELDFLAGS",fields[field]))
@@ -188,7 +190,7 @@ while(!done) {
 										if(console.aborted)
 											break;
 										reason += line + "\r\n";
-									} while (line != '');
+									} while (line != '' && bbs.online);
 								}
 								if(!gnats.replace(m[1],fields[field],newval,reason))
 									handle_error();
@@ -218,8 +220,8 @@ while(!done) {
 							if(console.aborted)
 								break;
 							note += line + "\r\n";
-						} while (line != '');
-						if(line == '') {
+						} while (line != '' && bbs.online);
+						if(line == '' && bbs.online) {
 							if(!gnats.send_followup(m[1],user.name,user.email,note))
 								handle_error();
 						}
@@ -252,7 +254,7 @@ function set_prlist()
 	for (field in query) {
 		fields.push(field);
 	}
-	while(!done) {
+	while(!done && bbs.online) {
 		var text='';
 		var expr='';
 		console.uselect(0,"Field","Run Query","");
diff --git a/exec/send_pr.js b/exec/send_pr.js
index 481103909711d17195ba709a611ed7710bd579b2..2e8ba5c09acc46f7ef6d4bc8f34568d7cba1a2be 100644
--- a/exec/send_pr.js
+++ b/exec/send_pr.js
@@ -79,7 +79,7 @@ do {
 	if(console.aborted)
 		exit();
 	pr.Description += line + "\r\n";
-} while (line != '');
+} while (line != '' && bbs.online);
 console.print("\1y\1hSteps to reproduce the problem (Blank line ends):\r\n");
 pr.HowToRepeat = '';
 do {
@@ -87,7 +87,7 @@ do {
 	if(console.aborted)
 		exit();
 	pr.HowToRepeat += line + "\r\n";
-} while (line != '');
+} while (line != '' && bbs.online);
 console.print("\1y\1hFix/Workaround if known (Blank line ends):\r\n");
 pr.Fix = '';
 do {
@@ -95,7 +95,7 @@ do {
 	if(console.aborted)
 		exit();
 	pr.Fix += line + "\r\n";
-} while (line != '');
+} while (line != '' && bbs.online);
 
 var body='';
 body += "To: bugs\r\n";
@@ -120,11 +120,14 @@ body += ">Description:\r\n" + pr.Description;
 body += ">How-To-Repeat:\r\n" + pr.HowToRepeat;
 body += ">Fix:\r\n" + pr.Fix;
 
-if(!gnats.submit(body)) {
-	alert(gnats.error);
-	console.pause();
-} else {
-	console.print("\1y\1hProblem Report (PR) submitted successfully.\r\n");
-	console.print(gnats.message);
+// Only submit if the user is still online...
+if(bbs.online) {
+	if(!gnats.submit(body)) {
+		alert(gnats.error);
+		console.pause();
+	} else {
+		console.print("\1y\1hProblem Report (PR) submitted successfully.\r\n");
+		console.print(gnats.message);
+	}
 }
 gnats.close();