Index: src/mlx/gui/update.py
===================================================================
--- src/mlx/gui/update.py	(revision 105)
+++ src/mlx/gui/update.py	(revision 115)
@@ -6,4 +6,5 @@
 
 from mlx.update import update
+from mlx.i18n import xstr
 
 import mlx.const as const
@@ -39,5 +40,5 @@
 
         Updater._progressWindow = window = gtk.Window()
-        window.set_title(WINDOW_TITLE_BASE + " Update")
+        window.set_title(WINDOW_TITLE_BASE + " " + xstr("update_title"))
         window.set_transient_for(parentWindow)
         #win.set_icon_from_file(os.path.join(iconDirectory, "logo.ico"))
@@ -72,5 +73,5 @@
 
         Updater._sudoDialog = sudoDialog = \
-            gtk.Dialog(WINDOW_TITLE_BASE + " Update",
+            gtk.Dialog(WINDOW_TITLE_BASE + " " + xstr("update_title"),
                        parentWindow,
                        gtk.DialogFlags.MODAL if pygobject else gtk.DIALOG_MODAL,
@@ -82,10 +83,5 @@
                                        padding_left = 16, padding_right = 16)
 
-        infoLabel = gtk.Label("There is an update available, but the program cannot write\n"
-                              "its directory due to insufficient privileges.\n\n"
-                              "Click OK, if you want to run a helper program\n"
-                              "with administrator privileges "
-                              "to complete the update,\n"
-                              "Cancel otherwise.")
+        infoLabel = gtk.Label(xstr("update_needsudo"))
         infoLabel.set_justify(gtk.Justification.CENTER if pygobject
                               else gtk.JUSTIFY_CENTER)
@@ -128,5 +124,5 @@
     def _downloadingManifest(self):
         """Called when the downloading of the manifest has started."""
-        self._progressLabel.set_text("Downloading manifest...")
+        self._progressLabel.set_text(xstr("update_manifest_progress"))
         self._progressBar.set_fraction(0)
 
@@ -137,5 +133,5 @@
     def _downloadedManifest(self):
         """Called when the downloading of the manifest has finished."""
-        self._progressLabel.set_text("Downloaded manifest...")
+        self._progressLabel.set_text(xstr("update_manifest_done"))
         self._progressBar.set_fraction(0.05)
 
@@ -178,5 +174,5 @@
     def _startDownload(self):
         """Called when the download has started."""
-        self._progressLabel.set_text("Downloading files...")
+        self._progressLabel.set_text(xstr("update_files_progress"))
 
     def setDownloaded(self, downloaded):
@@ -187,5 +183,5 @@
     def _setDownloaded(self, downloaded):
         """Called when a certain number of bytes are downloaded."""
-        self._progressLabel.set_text("Downloaded %d of %d" % \
+        self._progressLabel.set_text(xstr("update_files_bytes") % \
                                      (downloaded, self._totalSize))
         self._setProgress()
@@ -197,5 +193,5 @@
     def _startRenaming(self):
         """Called when the renaming of files has started."""
-        self._progressLabel.set_text("Renaming downloaded files...")
+        self._progressLabel.set_text(xstr("update_renaming"))
 
     def renamed(self, path, count):
@@ -206,5 +202,5 @@
     def _renamed(self, path, count):
         """Called when a file has been renamed."""
-        self._progressLabel.set_text("Renamed %s" % (path,))
+        self._progressLabel.set_text(xstr("update_renamed") % (path,))
         self._setProgress()
 
@@ -215,5 +211,5 @@
     def _startRemoving(self):
         """Called when the removing of files has started."""
-        self._progressLabel.set_text("Removing files...")
+        self._progressLabel.set_text(xstr("update_removing"))
 
     def removed(self, path, count):
@@ -224,5 +220,5 @@
     def _removed(self, path, count):
         """Called when a file has been removed."""
-        self._progressLabel.set_text("Removed %s" % (path,))
+        self._progressLabel.set_text(xstr("update_removed") % (path,))
         self._setProgress()
 
@@ -233,5 +229,5 @@
     def _writingManifest(self):
         """Called when the writing of the new manifest file has started."""
-        self._progressLabel.set_text("Writing the new manifest")
+        self._progressLabel.set_text(xstr("update_writing_manifest"))
         
     def done(self):
@@ -244,8 +240,8 @@
         self._progressBar.set_fraction(1)
         if self._totalProgress>0:
-            self._progressLabel.set_text("Finished updating. Press OK to restart the program.")
+            self._progressLabel.set_text(xstr("update_finished"))
             self._progressOKButton.set_sensitive(True)
         else:
-            self._progressLabel.set_text("There was nothing to update")
+            self._progressLabel.set_text(xstr("update_nothing"))
         
     def _setProgress(self):
@@ -264,5 +260,5 @@
     def _failed(self, what):
         """Called when the downloading has failed."""        
-        self._progressLabel.set_text("Failed, see the debug log for details.")
+        self._progressLabel.set_text(xstr("update_failed"))
         self._progressBar.set_fraction(1)
         self._progressOKButton.set_sensitive(True)
Index: src/mlx/i18n.py
===================================================================
--- src/mlx/i18n.py	(revision 114)
+++ src/mlx/i18n.py	(revision 115)
@@ -453,4 +453,26 @@
         self.add("statusicon_stage", "Stage:")
         self.add("statusicon_rating", "Rating:")
+
+        self.add("update_title", "Update")
+        self.add("update_needsudo",
+                 "There is an update available, but the program cannot write\n"
+                 "its directory due to insufficient privileges.\n\n"
+                 "Click OK, if you want to run a helper program\n"
+                 "with administrator privileges "
+                 "to complete the update,\n"
+                 "Cancel otherwise.")
+        self.add("update_manifest_progress", "Downloading manifest...")
+        self.add("update_manifest_done", "Downloaded manifest...")
+        self.add("update_files_progress", "Downloading files...")
+        self.add("update_files_bytes", "Downloaded %d of %d bytes")
+        self.add("update_renaming", "Renaming downloaded files...")
+        self.add("update_renamed", "Renamed %s")
+        self.add("update_removing", "Removing files...")
+        self.add("update_removed", "Removed %s")
+        self.add("update_writing_manifest", "Writing the new manifest")
+        self.add("update_finished",
+                 "Finished updating. Press OK to restart the program.")
+        self.add("update_nothing", "There was nothing to update")
+        self.add("update_failed", "Failed, see the debug log for details.")
                  
 #------------------------------------------------------------------------------
@@ -799,4 +821,25 @@
         self.add("statusicon_rating", "Pontszám:")
 
+        self.add("update_title", "Frissítés")
+        self.add("update_needsudo",
+                 "Lenne mit frissíteni, de a program hozzáférési jogok\n"
+                 "hiányában nem tud írni a saját könyvtárába.\n\n"
+                 "Kattints az OK gombra, ha el szeretnél indítani egy\n"
+                 "segédprogramot adminisztrátori jogokkal, amely\n"
+                 "befejezné a frissítést, egyébként a Mégse gombra.")
+        self.add("update_manifest_progress", "A manifesztum letöltése...")
+        self.add("update_manifest_done", "A manifesztum letöltve...")
+        self.add("update_files_progress", "Fájlok letöltése...")
+        self.add("update_files_bytes", "%d bájtot töltöttem le %d bájtból")
+        self.add("update_renaming", "A letöltött fájlok átnevezése...")
+        self.add("update_renamed", "Átneveztem a(z) %s fájlt")
+        self.add("update_removing", "Fájlok törlése...")
+        self.add("update_removed", "Letöröltem a(z) %s fájlt")
+        self.add("update_writing_manifest", "Az új manifesztum írása")
+        self.add("update_finished",
+                 "A frissítés sikerült. Kattints az OK-ra a program újraindításához.")
+        self.add("update_nothing", "Nem volt mit frissíteni")
+        self.add("update_failed", "Nem sikerült, a részleteket lásd a debug naplóban.")
+
 #------------------------------------------------------------------------------
 
Index: src/mlx/update.py
===================================================================
--- src/mlx/update.py	(revision 39)
+++ src/mlx/update.py	(revision 115)
@@ -425,4 +425,5 @@
 
         serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        serverSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
         serverSocket.bind(("127.0.0.1", 0))
         (_host, port) = serverSocket.getsockname()
