Index: locale/en/mlx.po
===================================================================
--- locale/en/mlx.po	(revision 392)
+++ locale/en/mlx.po	(revision 393)
@@ -951,9 +951,15 @@
 msgstr "The PIREP was saved successfully"
 
+msgid "finish_save_done_sec"
+msgstr "Path: %s"
+
 msgid "finish_save_failed"
 msgstr "Failed to save the PIREP"
 
 msgid "finish_save_failed_sec"
-msgstr "See the debug log for the details."
+msgstr "Error: %s."
+
+msgid "finish_autosave_busy"
+msgstr "Saving PIREP automatically..."
 
 msgid "info_comments"
Index: locale/hu/mlx.po
===================================================================
--- locale/hu/mlx.po	(revision 392)
+++ locale/hu/mlx.po	(revision 393)
@@ -954,9 +954,15 @@
 msgstr "A PIREP mentése sikerült"
 
+msgid "finish_save_done_sec"
+msgstr "Elérési út: %s"
+
 msgid "finish_save_failed"
 msgstr "A PIREP mentése nem sikerült"
 
 msgid "finish_save_failed_sec"
-msgstr "A részleteket lásd a debug naplóban."
+msgstr "A hiba: %s."
+
+msgid "finish_autosave_busy"
+msgstr "A PIREP automatikus mentése..."
 
 msgid "info_comments"
Index: src/mlx/gui/flight.py
===================================================================
--- src/mlx/gui/flight.py	(revision 391)
+++ src/mlx/gui/flight.py	(revision 393)
@@ -15,4 +15,5 @@
 import datetime
 import time
+import os
 
 #-----------------------------------------------------------------------------
@@ -2872,4 +2873,14 @@
                      self._gate.get_active()>=0)
 
+        wasSensitive = self._saveButton.get_sensitive()
+
+        gui = self._wizard.gui
+        config = gui.config
+        if config.pirepAutoSave and sensitive and not wasSensitive:
+            self._lastSavePath = os.path.join(config.pirepDirectory,
+                                              self._getDefaultPIREPName())
+            self._lastSavePath = text2unicode(self._lastSavePath)
+            self._savePIREP(automatic = True)
+
         self._saveButton.set_sensitive(sensitive)
         self._sendButton.set_sensitive(sensitive and
@@ -2903,18 +2914,24 @@
         gui.reset()
 
+    def _getDefaultPIREPName(self):
+        """Get the default name of the PIREP."""
+        gui = self._wizard.gui
+
+        bookedFlight = gui.bookedFlight
+        tm = time.gmtime()
+
+        pilotID = self._wizard.pilotID
+        if pilotID: pilotID += " "
+        return "%s%s %02d%02d %s-%s.pirep" % \
+               (pilotID, str(bookedFlight.departureTime.date()),
+                tm.tm_hour, tm.tm_min,
+                bookedFlight.departureICAO, bookedFlight.arrivalICAO)
+
+
     def _saveClicked(self, button):
         """Called when the Save PIREP button is clicked."""
         gui = self._wizard.gui
 
-        bookedFlight = gui.bookedFlight
-        tm = time.gmtime()
-
-        pilotID = self._wizard.pilotID
-        if pilotID: pilotID += " "
-        fileName = "%s%s %02d%02d %s-%s.pirep" % \
-                   (pilotID, str(bookedFlight.departureTime.date()),
-                    tm.tm_hour, tm.tm_min,
-                    bookedFlight.departureICAO,
-                    bookedFlight.arrivalICAO)
+        fileName = self._getDefaultPIREPName()
 
         dialog = self._getSaveDialog()
@@ -2932,27 +2949,43 @@
 
         if result==RESPONSETYPE_OK:
-            pirep = PIREP(gui.flight)
-
             self._lastSavePath = text2unicode(dialog.get_filename())
-
-            if pirep.save(self._lastSavePath):
-                type = MESSAGETYPE_INFO
-                message = xstr("finish_save_done")
+            self._savePIREP()
+
+    def _savePIREP(self, automatic = False):
+        """Perform the saving of the PIREP."""
+
+        gui = self._wizard.gui
+
+        if automatic:
+            gui.beginBusy(xstr("finish_autosave_busy"))
+
+        pirep = PIREP(gui.flight)
+        error = pirep.save(self._lastSavePath)
+
+        if automatic:
+            gui.endBusy()
+
+        if error:
+            type = MESSAGETYPE_ERROR
+            message = xstr("finish_save_failed")
+            secondary = xstr("finish_save_failed_sec") % (text2unicode(error),)
+        else:
+            type = MESSAGETYPE_INFO
+            message = xstr("finish_save_done")
+            if automatic:
+                secondary = xstr("finish_save_done_sec") % (self._lastSavePath,)
+            else:
                 secondary = None
-                self._pirepSaved = True
-            else:
-                type = MESSAGETYPE_ERROR
-                message = xstr("finish_save_failed")
-                secondary = xstr("finish_save_failed_sec")
-
-            dialog = gtk.MessageDialog(parent = gui.mainWindow,
-                                       type = type, message_format = message)
-            dialog.add_button(xstr("button_ok"), RESPONSETYPE_OK)
-            dialog.set_title(WINDOW_TITLE_BASE)
-            if secondary is not None:
-                dialog.format_secondary_markup(secondary)
-
-            dialog.run()
-            dialog.hide()
+            self._pirepSaved = True
+
+        dialog = gtk.MessageDialog(parent = gui.mainWindow,
+                                   type = type, message_format = message)
+        dialog.add_button(xstr("button_ok"), RESPONSETYPE_OK)
+        dialog.set_title(WINDOW_TITLE_BASE)
+        if secondary is not None:
+            dialog.format_secondary_markup(secondary)
+
+        dialog.run()
+        dialog.hide()
 
     def _getSaveDialog(self):
Index: src/mlx/gui/gui.py
===================================================================
--- src/mlx/gui/gui.py	(revision 391)
+++ src/mlx/gui/gui.py	(revision 393)
@@ -48,9 +48,11 @@
     _authors = [ (u"Váradi", u"István", "prog_test"),
                  (u"Galyassy", u"Tamás", "negotiation"),
-                 (u"Petrovszki", u"Gábor", "test"),
-                 (u"Zsebényi-Loksa", u"Gergely", "test"),
                  (u"Kurják", u"Ákos", "test"),
                  (u"Nagy", u"Dániel", "test"),
-                 (u"Radó", u"Iván", "test") ]
+                 (u"Radó", u"Iván", "test"),
+                 (u"Petrovszki", u"Gábor", "test"),
+                 (u"Serfőző", u"Tamás", "test"),
+                 (u"Szebenyi", u"Bálint", "test"),
+                 (u"Zsebényi-Loksa", u"Gergely", "test") ]
 
     def __init__(self, programDirectory, config):
Index: src/mlx/pirep.py
===================================================================
--- src/mlx/pirep.py	(revision 345)
+++ src/mlx/pirep.py	(revision 393)
@@ -155,6 +155,7 @@
             with open(path, "wb") as f:
                 pickle.dump(self, f)
-            return True
+            return None
         except Exception, e:
-            print "Failed saving PIREP to %s: %s" % (path, str(e))
-            return False
+            error = str(e)
+            #print u"Failed saving PIREP to %s: %s" % (path, error)
+            return error
