Index: src/mlx/acft.py
===================================================================
--- src/mlx/acft.py	(revision 95)
+++ src/mlx/acft.py	(revision 96)
@@ -25,4 +25,6 @@
         self._maxVS = -10000.0
         self._minVS = 10000.0
+
+        self._vrefLineIndex = None
 
         self._checkers = []
@@ -189,8 +191,9 @@
                             "Altimeter setting: %.0f hPa" % \
                             (self._aircraftState.altimeter,))
-        self.logger.message(self._aircraftState.timestamp,
-                            "VRef speed calculated by the pilot: %s" % \
-                            ("-" if self._flight.vref is None
-                             else str(self._flight.vref)))
+        self._vrefLineIndex = \
+            self.logger.message(self._aircraftState.timestamp,
+                                "VRef speed calculated by the pilot: %s" % \
+                                ("-" if self._flight.vref is None
+                                 else str(self._flight.vref)))
         self.flight.flareStarted(flareStart, flareStartFS)
          
@@ -230,4 +233,21 @@
             if n1>=0.5: return False
         return True
+
+    def updateVRef(self):
+        """Update the Vref value from the flight, if the Vref value has already
+        been logged."""
+        if self._vrefLineIndex is not None:
+            self._logVRef()
+
+    def _logVRef(self):
+        """Log the Vref value either newly, or by updating the corresponding
+        line."""
+        message = "VRef speed calculated by the pilot: %s" % \
+                  ("-" if self._flight.vref is None else str(self._flight.vref))
+        if self._vrefLineIndex is None:
+            self._vrefLineIndex = \
+                self.logger.message(self._aircraftState.timestamp, message)
+        else:
+            self.logger.updateLine(self._vrefLineIndex, message)
 
 #---------------------------------------------------------------------------------------
Index: src/mlx/gui/flight.py
===================================================================
--- src/mlx/gui/flight.py	(revision 94)
+++ src/mlx/gui/flight.py	(revision 96)
@@ -1557,6 +1557,7 @@
 
         self._vref.set_sensitive(False)
+        self._wizard.gui.flight.aircraft.updateVRef()
         # FIXME: Perhaps a separate initialize() call which would set up
-        # defaults?
+        # defaults? -> use reset()
         self._flightEnded = False
 
@@ -1618,8 +1619,8 @@
                                   xscale = 0.0, yscale = 0.0)
 
-        table = gtk.Table(5, 2)
+        table = gtk.Table(7, 2)
         table.set_row_spacings(4)
         table.set_col_spacings(16)
-        table.set_homogeneous(True)
+        table.set_homogeneous(False)
         alignment.add(table)
         self.setMainWidget(alignment)
@@ -1689,4 +1690,35 @@
         labelAlignment.add(self._fuelUsed)
         table.attach(labelAlignment, 1, 2, 4, 5)
+
+        labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0)
+        label = gtk.Label("_Type:")
+        label.set_use_underline(True)
+        labelAlignment.add(label)
+        table.attach(labelAlignment, 0, 1, 5, 6)
+
+        flightTypeModel = gtk.ListStore(str, int)
+        index = 1
+        for type in ["scheduled", "old-timer", "VIP", "charter"]:
+            flightTypeModel.append([type, index])
+            index += 1
+
+        self._flightType = gtk.ComboBox(model = flightTypeModel)
+        renderer = gtk.CellRendererText()
+        self._flightType.pack_start(renderer, True)
+        self._flightType.add_attribute(renderer, "text", 0)
+        self._flightType.set_tooltip_text("Select the type of the flight.")
+        self._flightType.set_active(0)
+        self._flightType.connect("changed", self._flightTypeChanged)
+        flightTypeAlignment = gtk.Alignment(xalign=0.0, xscale=0.0)
+        flightTypeAlignment.add(self._flightType)
+        table.attach(flightTypeAlignment, 1, 2, 5, 6)
+        label.set_mnemonic_widget(self._flightType)        
+
+        self._onlineFlight = gtk.CheckButton("_Online flight")
+        self._onlineFlight.set_use_underline(True)
+        self._onlineFlight.set_tooltip_text("Check if your flight was online, uncheck otherwise.")
+        onlineFlightAlignment = gtk.Alignment(xalign=0.0, xscale=0.0)
+        onlineFlightAlignment.add(self._onlineFlight)
+        table.attach(onlineFlightAlignment, 1, 2, 6, 7)
 
         button = self.addButton(gtk.STOCK_GO_BACK)
@@ -1727,7 +1759,17 @@
                                   (flight.endFuel - flight.startFuel,))
 
+        self._flightType.set_active(-1)
+        self._onlineFlight.set_active(True)
+
     def _backClicked(self, button):
         """Called when the Back button is pressed."""
         self.goBack()
+
+    def _flightTypeChanged(self, comboBox):
+        """Called when the flight type has changed."""
+        index = self._flightType.get_active()
+        flightTypeIsValid = index>=0
+        self._saveButton.set_sensitive(flightTypeIsValid)
+        self._sendButton.set_sensitive(flightTypeIsValid)
         
 #-----------------------------------------------------------------------------
Index: src/mlx/gui/gui.py
===================================================================
--- src/mlx/gui/gui.py	(revision 93)
+++ src/mlx/gui/gui.py	(revision 96)
@@ -24,4 +24,11 @@
 class GUI(fs.ConnectionListener):
     """The main GUI class."""
+    @staticmethod
+    def _formatFlightLogLine(timeStr, line):
+        """Format the given line for flight logging."""
+        if timeStr is not None:
+            line = timeStr + ": " + line
+        return line + "\n"
+        
     def __init__(self, programDirectory, config):
         """Construct the GUI."""
@@ -33,5 +40,5 @@
         self._reconnecting = False
         self._connected = False
-        self._logger = logger.Logger(output = self)
+        self._logger = logger.Logger(self)
         self._flight = None
         self._simulator = None
@@ -272,8 +279,24 @@
         self._statusbar.updateConnection(False, False)
             
-    def write(self, msg):
-        """Write the given message to the log."""
-        gobject.idle_add(self._writeLog, msg, self._logView)
-        
+    def addFlightLogLine(self, timeStr, line):
+        """Write the given message line to the log."""
+        gobject.idle_add(self._writeLog,
+                         GUI._formatFlightLogLine(timeStr, line),
+                         self._logView)
+
+    def updateFlightLogLine(self, index, timeStr, line):
+        """Update the line with the given index."""
+        gobject.idle_add(self._updateFlightLogLine, index,
+                         GUI._formatFlightLogLine(timeStr, line))
+
+    def _updateFlightLogLine(self, index, line):
+        """Replace the contents of the given line in the log."""
+        buffer = self._logView.get_buffer()
+        startIter = buffer.get_iter_at_line(index)
+        endIter = buffer.get_iter_at_line(index + 1)
+        buffer.delete(startIter, endIter)
+        buffer.insert(startIter, line)
+        self._logView.scroll_mark_onscreen(buffer.get_insert())
+
     def check(self, flight, aircraft, logger, oldState, state):
         """Update the data."""
@@ -428,9 +451,9 @@
             
         for line in lines:
-            print >> sys.__stdout__, line
+            #print >> sys.__stdout__, line
             self._writeLog(line + "\n", self._debugLogView)
 
         if text:
-            print >> sys.__stdout__, line,
+            #print >> sys.__stdout__, text,
             self._writeLog(text, self._debugLogView)
 
Index: src/mlx/logger.py
===================================================================
--- src/mlx/logger.py	(revision 87)
+++ src/mlx/logger.py	(revision 96)
@@ -28,6 +28,7 @@
     NO_GO_SCORE = 10000
 
-    def __init__(self, output = sys.stdout):
+    def __init__(self, output):
         """Construct the logger."""
+        self._lines = []
         self._faults = {}
         self._output = output
@@ -42,4 +43,5 @@
 
         The faults logged so far will be cleared."""
+        self._lines = []
         self._faults.clear()
                 
@@ -47,9 +49,9 @@
         """Put a simple textual message into the log with the given timestamp."""
         timeStr = Logger._getTimeStr(timestamp)
-        print >> self._output, timeStr + ":", msg
+        return self._logLine(msg, timeStr)
 
     def untimedMessage(self, msg):
         """Put an untimed message into the log."""
-        print >> self._output, msg
+        return self._logLine(msg)
 
     def debug(self, msg):
@@ -93,4 +95,17 @@
                 totalScore -= score
         return totalScore
+
+    def updateLine(self, index, line):
+        """Update the line at the given index with the given string."""
+        (timeStr, _line) = self._lines[index]
+        self._lines[index] = (timeStr, line)
+        self._output.updateFlightLogLine(index, timeStr, line)
+
+    def _logLine(self, line, timeStr = None):
+        """Log the given line."""
+        index = len(self._lines)
+        self._lines.append((timeStr, line))
+        self._output.addFlightLogLine(timeStr, line)
+        return index
         
 #--------------------------------------------------------------------------------------
