Index: locale/en/mlx.po
===================================================================
--- locale/en/mlx.po	(revision 1034)
+++ locale/en/mlx.po	(revision 1067)
@@ -1857,5 +1857,5 @@
 
 msgid "prefs_update_auto"
-msgstr "Update the program auto_matically"
+msgstr "Update the program automaticall_y"
 
 msgid "prefs_update_auto_tooltip"
@@ -1878,4 +1878,21 @@
 "The URL from which to download the updates. Change this only if you "
 "know what you are doing!"
+
+msgid "prefs_xplane_remote"
+msgstr "Connect to X-Plane _remotely"
+
+msgid "prefs_xplane_remote_tooltip"
+msgstr ""
+"If selected and you are usinb X-Plane, the logger will connect to X-Plane "
+"running on another machine, whose IP address or domain name should be "
+"entered below."
+
+msgid "prefs_xplane_address"
+msgstr "_Address or name:"
+
+msgid "prefs_xplane_address_tooltip"
+msgstr ""
+"Enter the IP address or the domain name of the machine, "
+"where X-Plane runs."
 
 msgid "prefs_use_rpc"
Index: locale/hu/mlx.po
===================================================================
--- locale/hu/mlx.po	(revision 1034)
+++ locale/hu/mlx.po	(revision 1067)
@@ -1890,4 +1890,20 @@
 "Az URL, ahol a frissítéseket keresi a program. Csak akkor változtasd meg, "
 "ha biztos vagy a dolgodban!"
+
+msgid "prefs_xplane_remote"
+msgstr "X-Plane _távoli elérése"
+
+msgid "prefs_xplane_remote_tooltip"
+msgstr ""
+"Ha ez ki van választva, és X-Plane-t használsz, a logger a lent megadott "
+"névvel vagy IP címmel rendelkező másik gépen futó X-Plane-hez fog "
+"kapcsolódni."
+
+msgid "prefs_xplane_address"
+msgstr "_Cím vagy név:"
+
+msgid "prefs_xplane_address_tooltip"
+msgstr ""
+"Add meg az X-Plane-t futtató gép IP címét vagy nevét."
 
 msgid "prefs_use_rpc"
Index: src/mlx/config.py
===================================================================
--- src/mlx/config.py	(revision 1045)
+++ src/mlx/config.py	(revision 1067)
@@ -260,4 +260,7 @@
         self._updateURLUpdated = True
 
+        self._xplaneRemote = False
+        self._xplaneAddress = ""
+
         self._messageTypeLevels = {}
 
@@ -667,4 +670,28 @@
         if updateURL!=self._updateURL:
             self._updateURL = updateURL
+            self._modified = True
+
+    @property
+    def xplaneRemote(self):
+        """Indicate if X-Plane should be accessed remotely."""
+        return self._xplaneRemote
+
+    @xplaneRemote.setter
+    def xplaneRemote(self, xplaneRemote):
+        """Set if X-Plane should be accessed remotely."""
+        if xplaneRemote!=self._xplaneRemote:
+            self._xplaneRemote = xplaneRemote
+            self._modified = True
+
+    @property
+    def xplaneAddress(self):
+        """Get the address of the machine running X-Plane"""
+        return self._xplaneAddress
+
+    @xplaneAddress.setter
+    def xplaneAddress(self, xplaneAddress):
+        """Set the address of the machine running X-Plane."""
+        if xplaneAddress!=self._xplaneAddress:
+            self._xplaneAddress = xplaneAddress
             self._modified = True
 
@@ -799,4 +826,9 @@
                                              "defaultMSFS", os.name=="nt")
 
+        self._xplaneRemote = self._getBoolean(config, "general",
+                                              "xplaneRemote", False)
+        self._xplaneAddress = self._get(config, "general",
+                                        "xplaneAddress", "")
+
         self._modified = False
 
@@ -852,4 +884,8 @@
                    "yes" if self._defaultMSFS else "no")
 
+        config.set("general", "xplaneRemote",
+                   "yes" if self._xplaneRemote else "no")
+        config.set("general", "xplaneAddress", self._xplaneAddress)
+
         config.add_section(Config._messageTypesSection)
         for messageType in const.messageTypes:
@@ -1002,4 +1038,6 @@
 
         print("  defaultMSFS:", self._defaultMSFS)
+        print("  xplaneRemote:", self._xplaneRemote)
+        print("  xplaneAddress:", self._xplaneAddress)
 
         print("  enableSounds:", self._enableSounds)
Index: src/mlx/gui/prefs.py
===================================================================
--- src/mlx/gui/prefs.py	(revision 1044)
+++ src/mlx/gui/prefs.py	(revision 1067)
@@ -276,4 +276,7 @@
 
         self._updateURL.set_text(config.updateURL)
+
+        self._xplaneRemote.set_active(config.xplaneRemote)
+        self._xplaneAddress.set_text(config.xplaneAddress)
 
         self._settingFromConfig = False
@@ -321,4 +324,7 @@
         config.updateURL = self._updateURL.get_text()
 
+        config.xplaneRemote = self._xplaneRemote.get_active()
+        config.xplaneAddress = self._xplaneAddress.get_text()
+
     def _buildGeneral(self):
         """Build the page for the general settings."""
@@ -793,6 +799,10 @@
         mainAlignment.add(mainBox)
 
+        frame = Gtk.Frame.new()
+
         self._autoUpdate = Gtk.CheckButton(xstr("prefs_update_auto"))
-        mainBox.pack_start(self._autoUpdate, False, False, 4)
+        frame.set_label_widget(self._autoUpdate)
+        frame.set_label_align(0.025, 0.5)
+        mainBox.pack_start(frame, False, False, 4)
 
         self._autoUpdate.set_use_underline(True)
@@ -802,5 +812,4 @@
 
         updateURLBox = Gtk.HBox()
-        mainBox.pack_start(updateURLBox, False, False, 4)
         label = Gtk.Label(xstr("prefs_update_url"))
         label.set_use_underline(True)
@@ -813,4 +822,38 @@
         self._updateURL.connect("changed", self._updateURLChanged)
         updateURLBox.pack_start(self._updateURL, True, True, 4)
+
+        updateURLBox.set_margin_top(6)
+        updateURLBox.set_margin_bottom(6)
+        updateURLBox.set_margin_left(4)
+        updateURLBox.set_margin_right(4)
+        frame.add(updateURLBox)
+
+        frame = Gtk.Frame.new()
+        self._xplaneRemote = Gtk.CheckButton(xstr("prefs_xplane_remote"))
+        frame.set_label_widget(self._xplaneRemote)
+        frame.set_label_align(0.025, 0.5)
+        mainBox.pack_start(frame, False, False, 4)
+
+        self._xplaneRemote.set_use_underline(True)
+        self._xplaneRemote.set_tooltip_text(xstr("prefs_xplane_remote_tooltip"))
+        self._xplaneRemote.connect("toggled", self._xplaneRemoteToggled)
+
+        xplaneAddressBox = Gtk.HBox()
+        label = Gtk.Label(xstr("prefs_xplane_address"))
+        label.set_use_underline(True)
+        xplaneAddressBox.pack_start(label, False, False, 4)
+
+        self._xplaneAddress = Gtk.Entry()
+        label.set_mnemonic_widget(self._xplaneAddress)
+        self._xplaneAddress.set_width_chars(40)
+        self._xplaneAddress.set_tooltip_text(xstr("prefs_xplane_address_tooltip"))
+        self._xplaneAddress.connect("changed", self._xplaneAddressChanged)
+        xplaneAddressBox.pack_start(self._xplaneAddress, True, True, 4)
+
+        xplaneAddressBox.set_margin_top(6)
+        xplaneAddressBox.set_margin_bottom(6)
+        xplaneAddressBox.set_margin_left(4)
+        xplaneAddressBox.set_margin_right(4)
+        frame.add(xplaneAddressBox)
 
         return mainAlignment
@@ -824,4 +867,8 @@
         except:
             pass
+
+        if sensitive:
+            sensitive = not self._xplaneRemote.get_active() or \
+                len(self._xplaneAddress.get_text())>0
 
         okButton = self.get_widget_for_response(Gtk.ResponseType.ACCEPT)
@@ -845,2 +892,9 @@
         self._setOKButtonSensitivity()
 
+    def _xplaneRemoteToggled(self, button):
+        """Called when the X-Plane remote access checkbox is toggled."""
+        self._setOKButtonSensitivity()
+
+    def _xplaneAddressChanged(self, entry):
+        """Called when the X-Plane address is changed."""
+        self._setOKButtonSensitivity()
Index: src/mlx/xplane.py
===================================================================
--- src/mlx/xplane.py	(revision 1064)
+++ src/mlx/xplane.py	(revision 1067)
@@ -494,4 +494,12 @@
         not due to no longer requested.
         """
+        config = self._connectionListener.config
+        if config.xplaneRemote:
+            address = "tcp:" + config.xplaneAddress
+        else:
+            address = "local"
+
+        print("xplane.Handler._connect: address:", address)
+
         while self._connectionRequested:
             if attempts>=self.NUM_CONNECTATTEMPTS:
@@ -507,5 +515,5 @@
             try:
                 attempts += 1
-                self._xplane.connect()
+                self._xplane.connect(address = address)
 
                 (xplaneVersion, xplmVersion, xplraVersion) = \
@@ -734,4 +742,9 @@
 
         self._fuelCallback = None
+
+    @property
+    def config(self):
+        """Get the configuration."""
+        return self._connectionListener.config
 
     def connect(self, aircraft):
