diff --git a/monitor.py b/monitor.py
index f1358791..392be811 100644
--- a/monitor.py
+++ b/monitor.py
@@ -224,24 +224,18 @@ class EDLogs(FileSystemEventHandler):
         if self.live:
             if self.game_was_running:
                 # Game is running locally
+                entry = OrderedDict([
+                    ('timestamp', strftime('%Y-%m-%dT%H:%M:%SZ', gmtime())),
+                    ('event', 'StartUp'),
+                    ('StarSystem', self.system),
+                    ('StarPos', self.coordinates),
+                ])
+                if self.body:
+                    entry['Body'] = self.body
+                entry['Docked'] = bool(self.station)
                 if self.station:
-                    entry = OrderedDict([
-                        ('timestamp', strftime('%Y-%m-%dT%H:%M:%SZ', gmtime())),
-                        ('event', 'StartUp'),
-                        ('Docked', True),
-                        ('StationName', self.station),
-                        ('StationType', self.stationtype),
-                        ('StarSystem', self.system),
-                        ('StarPos', self.coordinates),
-                    ])
-                else:
-                    entry = OrderedDict([
-                        ('timestamp', strftime('%Y-%m-%dT%H:%M:%SZ', gmtime())),
-                        ('event', 'StartUp'),
-                        ('Docked', False),
-                        ('StarSystem', self.system),
-                        ('StarPos', self.coordinates),
-                    ])
+                    entry['StationName'] = self.station
+                    entry['StationType'] = self.stationtype
                 self.event_queue.append(json.dumps(entry, separators=(', ', ':')))
             else:
                 self.event_queue.append(None)	# Generate null event to update the display (with possibly out-of-date info)
@@ -403,9 +397,11 @@ class EDLogs(FileSystemEventHandler):
                                                entry.get('StationName'))	# May be None
                 self.stationtype = entry.get('StationType')	# May be None
                 self.stationservices = entry.get('StationServices')	# None under E:D < 2.4
+            elif entry['event'] == 'ApproachBody':
+                self.planet = entry['Body']
             elif entry['event'] == 'SupercruiseExit':
                 self.planet = entry.get('Body') if entry.get('BodyType') == 'Planet' else None
-            elif entry['event'] == 'SupercruiseEntry':
+            elif entry['event'] in ['LeaveBody', 'SupercruiseEntry']:
                 self.planet = None
             elif entry['event'] in ['Rank', 'Promotion']:
                 for k,v in entry.iteritems():