diff --git a/xtrn/tw2/input.js b/xtrn/tw2/input.js
index 8640b731c158561485e06c5f46df33a06d45a0f5..ed0fed58ba0bdefde9e013cd1804d89bacce1a97 100644
--- a/xtrn/tw2/input.js
+++ b/xtrn/tw2/input.js
@@ -28,24 +28,31 @@ function InputFunc(values)
 	console.attributes="N";
 InputFuncMainLoop:
 	for(;;) {
+		/* Node status check */
+		var newmisc=system.node_list[bbs.node_num-1].misc;
+		var newstatus=system.node_list[bbs.node_num-1].status;
+		if(newmisc != lastmisc || newstatus != laststatus) {
+			console.saveline();
+			bbs.nodesync();
+			console.write("\r");
+			if(console.line_counter!=0) {
+				console.crlf();
+				console.line_counter=0;
+			}
+			console.restoreline();
+			lastmisc=system.node_list[bbs.node_num-1].misc;
+			laststatus=system.node_list[bbs.node_num-1].status;
+		}
+		/* Time Check */
+		if((player.TimedUsed + (time()-on_at)) > (Settings.MaxTime*60)) {
+			console.crlf()
+			console.crlf()
+			console.writeln("You are out of time for today");
+			exit(0);
+		}
+
 		key=console.inkey(100);
 		if(key == '') {
-			/* Node status check */
-			var newmisc=system.node_list[bbs.node_num-1].misc;
-			var newstatus=system.node_list[bbs.node_num-1].status;
-			if(newmisc != lastmisc || newstatus != laststatus) {
-				console.saveline();
-				bbs.nodesync();
-				console.write("\r");
-				if(console.line_counter!=0) {
-					console.crlf();
-					console.line_counter=0;
-				}
-				console.restoreline();
-				lastmisc=system.node_list[bbs.node_num-1].misc;
-				laststatus=system.node_list[bbs.node_num-1].status;
-			}
-			
 			/* Busy loop checking */
 		}
 		else {
diff --git a/xtrn/tw2/tw2.js b/xtrn/tw2/tw2.js
index 5a75c131a4e9752e55144a983413270b6cf8da88..a4fb9bbc8d0088896674cfe1bbbf1eeac6d30d85 100644
--- a/xtrn/tw2/tw2.js
+++ b/xtrn/tw2/tw2.js
@@ -202,18 +202,21 @@ function do_exit()
 	if(player.Ported || player.Landed) {
 		var sector=sectors.Get(player.Sector);
 		if(player.Ported) {
+			console.writeln("Leaving the port...");
 			player.Ported=false;
 			var port=ports.Get(sector.Port);
 			port.OccupiedBy=0;
 			port.Put();
 		}
 		if(player.Landed) {
+			console.writeln("Launching from planet...");
 			player.Landed=false;
 			var planet=planets.Get(sector.Planet);
 			planet.OccupiedBy=0;
 			planet.Put();
 		}
 	}
+	player.TimeUsed += time()-on_at;
 	player.Put();
 	console.writeln("Returning to Door monitor...");
 	TWRank();