diff --git a/xtrn/tw2/players.js b/xtrn/tw2/players.js
index 92fca762098631445b3a39a95fca7b082767521b..fbd5dcfbd668e4e519aaacbcc0bd6c3022f04345 100644
--- a/xtrn/tw2/players.js
+++ b/xtrn/tw2/players.js
@@ -95,6 +95,12 @@ var PlayerProperties=[
 				,type:"Boolean"
 				,def:false
 			}
+			,{
+				 prop:"TimeToday"
+				,name:"Time used today (secs)"
+				,type:"Integer"
+				,def:0
+			}
 		];
 
 var PlayerLocation = [
@@ -637,6 +643,7 @@ function LoadPlayer()
 		}
 		else {
 			player.TurnsLeft=Settings.TurnsPerDay;
+			player.TimeToday=0;
 		}
 		player.LastOnDay=system.datestr();
 		if(player.KilledBy != 0) {
diff --git a/xtrn/tw2/tw2.js b/xtrn/tw2/tw2.js
index 7d606a8d4c846c2d82cd13c0c62159516e2a9faf..5a75c131a4e9752e55144a983413270b6cf8da88 100644
--- a/xtrn/tw2/tw2.js
+++ b/xtrn/tw2/tw2.js
@@ -199,8 +199,21 @@ function Menu()
 function do_exit()
 {
 	player.Online=false;
-	player.Ported=false;
-	player.Landed=false;
+	if(player.Ported || player.Landed) {
+		var sector=sectors.Get(player.Sector);
+		if(player.Ported) {
+			player.Ported=false;
+			var port=ports.Get(sector.Port);
+			port.OccupiedBy=0;
+			port.Put();
+		}
+		if(player.Landed) {
+			player.Landed=false;
+			var planet=planets.Get(sector.Planet);
+			planet.OccupiedBy=0;
+			planet.Put();
+		}
+	}
 	player.Put();
 	console.writeln("Returning to Door monitor...");
 	TWRank();
@@ -234,4 +247,3 @@ function Production(place)
 	place.LastUpdate=newupd;
 	place.Put();
 }
-