Index: src/mlx/gui/flight.py
===================================================================
--- src/mlx/gui/flight.py	(revision 436)
+++ src/mlx/gui/flight.py	(revision 501)
@@ -880,8 +880,10 @@
                                           completedHelp = xstr("connect_chelp"))
 
+        self._selectSimulator = os.name=="nt" or "FORCE_SELECT_SIM" in os.environ
+
         alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5,
                                   xscale = 0.0, yscale = 0.0)
 
-        table = gtk.Table(5, 2)
+        table = gtk.Table(7 if self._selectSimulator else 5, 2)
         table.set_row_spacings(4)
         table.set_col_spacings(16)
@@ -949,4 +951,37 @@
         labelAlignment.add(self._departureGate)
         table.attach(labelAlignment, 1, 2, 4, 5)
+
+        if self._selectSimulator:
+            labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0, yalign=0.5)
+            label = gtk.Label(xstr("connect_sim"))
+            labelAlignment.add(label)
+            table.attach(labelAlignment, 0, 1, 5, 7)
+
+            selectAlignment = gtk.Alignment(xalign=0.0, xscale=0.0, yalign=0.5)
+
+            selectBox = gtk.HBox()
+            if pygobject:
+                self._selectMSFS = \
+                  gtk.RadioButton.new_with_mnemonic_from_widget(None,
+                                                                xstr("connect_sim_msfs"))
+            else:
+                self._selectMSFS = gtk.RadioButton(None,
+                                                   xstr("connect_sim_msfs"))
+
+            selectBox.pack_start(self._selectMSFS, False, False, 0);
+
+            if pygobject:
+                self._selectXPlane = \
+                  gtk.RadioButton.new_with_mnemonic_from_widget(self._selectMSFS,
+                                                                xstr("connect_sim_xplane"))
+            else:
+                self._selectXPlane = gtk.RadioButton(self._selectMSFS,
+                                                     xstr("connect_sim_xplane"))
+
+            selectBox.pack_start(self._selectXPlane, False, False, 8);
+
+            selectAlignment.add(selectBox)
+            table.attach(selectAlignment, 1, 2, 5, 7)
+
 
         self.addCancelFlightButton()
@@ -982,4 +1017,8 @@
         self._departureGate.set_markup(gate)
 
+        if self._selectSimulator:
+            self._selectMSFS.set_active(os.name=="nt")
+            self._selectXPlane.set_active(os.name!="nt")
+
     def finalize(self):
         """Finalize the page."""
@@ -996,5 +1035,11 @@
     def _connectClicked(self, button):
         """Called when the Connect button is pressed."""
-        self._wizard._connectSimulator()
+        if self._selectSimulator:
+            simulatorType = const.SIM_MSFS9 if self._selectMSFS.get_active() \
+                                            else const.SIM_XPLANE10
+        else:
+            simulatorType = const.SIM_MSFS9 if os.name=="nt" \
+                                            else const.SIM_XPLANE10
+        self._wizard._connectSimulator(simulatorType)
 
     def _forwardClicked(self, button):
@@ -3494,7 +3539,8 @@
         self.gui.rtoToggled(indicated)
 
-    def _connectSimulator(self):
+    def _connectSimulator(self, simulatorType):
         """Connect to the simulator."""
-        self.gui.connectSimulator(self._bookedFlight.aircraftType)
+        self.gui.connectSimulator(self._bookedFlight.aircraftType,
+                                  simulatorType)
 
     def _arrivalMETARCallback(self, returned, result):
Index: src/mlx/gui/gui.py
===================================================================
--- src/mlx/gui/gui.py	(revision 496)
+++ src/mlx/gui/gui.py	(revision 501)
@@ -520,4 +520,6 @@
         self._disconnect()
 
+        self._simulator = None
+
         self._flightInfo.reset()
         self._flightInfo.disable()
@@ -894,5 +896,5 @@
             self._stdioStartingLine = False
 
-    def connectSimulator(self, aircraftType):
+    def connectSimulator(self, aircraftType, simulatorType):
         """Connect to the simulator for the first time."""
         self._logger.reset()
@@ -905,5 +907,5 @@
 
         if self._simulator is None:
-            self._simulator = fs.createSimulator(const.SIM_MSFS9, self)
+            self._simulator = fs.createSimulator(simulatorType, self)
             fs.setupMessageSending(self.config, self._simulator)
             self._setupTimeSync()
