Index: locale/en/mlx.po
===================================================================
--- locale/en/mlx.po	(revision 763)
+++ locale/en/mlx.po	(revision 764)
@@ -2291,4 +2291,13 @@
 "and the check flight here."
 
+msgid "student_entry_exam_status"
+msgstr "Entry exam:"
+
+msgid "student_entry_exam_passed"
+msgstr "<span color=\"darkgreen\"><b>Passed</b></span>"
+
+msgid "student_entry_exam_not_passed"
+msgstr "<span color=\"orange\"><b>Not yet passed</b></span>"
+
 msgid "student_entry_exam"
 msgstr "Take the _entry exam"
@@ -2297,5 +2306,7 @@
 msgstr ""
 "Click this button to go to MAVA's training website in your browser and take "
-"the theoretical entry exam. If this button is greyed out, "
-"it means that you have already passed the exam earlier. Note, that "
-"its status is updated only a few minutes after passing the exam."
+"the theoretical entry exam. The website might ask you for login: you can "
+"use your MAVA pilot ID (PXXX) and password. "
+"If this button is greyed out, it means that you have already passed "
+"the exam earlier. Note, that its status is updated only a few minutes "
+"after passing the exam."
Index: locale/hu/mlx.po
===================================================================
--- locale/hu/mlx.po	(revision 762)
+++ locale/hu/mlx.po	(revision 764)
@@ -2307,4 +2307,13 @@
 "és az ellenőrző repülést."
 
+msgid "student_entry_exam_status"
+msgstr "Elméleti vizsga:"
+
+msgid "student_entry_exam_passed"
+msgstr "<span color=\"darkgreen\"><b>Sikeres</b></span>"
+
+msgid "student_entry_exam_not_passed"
+msgstr "<span color=\"orange\"><b>Még nem tetted le</b></span>"
+
 msgid "student_entry_exam"
 msgstr "_Elméleti vizsga"
@@ -2314,4 +2323,6 @@
 "Erre a gombra kattintva a MAVA oktatási weboldalára kerülsz "
 "böngésződben és kitöltheted az elméleti vizsga tesztjét. "
+"A weboldalon szükség lehet bejelentkezned: ebben az esetben "
+"használd a MAVA pilóta azonosítódat (PXXX) és jelszavadat. "
 "Ha a gomb inaktív, a vizsgát korábban már sikeresen teljesítetted. "
 "A gomb állapota csak néhány perccel a vizsga teljesítése után frissül."
Index: src/mlx/gui/flight.py
===================================================================
--- src/mlx/gui/flight.py	(revision 762)
+++ src/mlx/gui/flight.py	(revision 764)
@@ -21,4 +21,5 @@
 import threading
 import re
+import webbrowser
 
 #-----------------------------------------------------------------------------
@@ -1378,11 +1379,28 @@
                                   xscale = 0.5, yscale = 0.0)
 
-        table = gtk.Table(1, 1)
+        table = gtk.Table(2, 2)
         table.set_row_spacings(4)
         table.set_col_spacings(32)
+        table.set_homogeneous(False)
         alignment.add(table)
         self.setMainWidget(alignment)
 
         row = 0
+
+        labelAlignment = gtk.Alignment(xalign=0.0, yalign = 0.5,
+                                       xscale=0.0, yscale = 0.0)
+        label = gtk.Label(xstr("student_entry_exam_status"))
+        labelAlignment.add(label)
+        table.attach(labelAlignment, 0, 1, row, row + 1, xoptions = 0)
+
+        alignment = gtk.Alignment(xalign=0.0, yalign = 0.5,
+                                  xscale=1.0, yscale = 0.0)
+        self._entryExamStatus = gtk.Label()
+        self._entryExamStatus.set_use_markup(True)
+        self._entryExamStatus.set_alignment(0.0, 0.5)
+        alignment.add(self._entryExamStatus)
+        table.attach(alignment, 1, 2, row, row + 1)
+
+        row += 1
 
         buttonAlignment = gtk.Alignment(xalign=0.0, xscale=1.0)
@@ -1393,14 +1411,19 @@
 
         buttonAlignment.add(button)
-        table.attach(buttonAlignment, 0, 1, 0, 1)
+        table.attach(buttonAlignment, 0, 2, row, row + 1,
+                     ypadding = 4)
 
     def activate(self):
         """Activate the student page."""
         loginResult = self._wizard.loginResult
-        self._entryExamButton.set_sensitive(not loginResult.entryExamPassed)
+        self._entryExamLink = loginResult.entryExamLink
+
+        self._updateEntryExamStatus(loginResult.entryExamPassed)
+
         self._getEntryExamStatus()
 
     def _entryExamClicked(self, button):
         """Called when the entry exam button is clicked."""
+        webbrowser.open(self._entryExamLink)
 
     def _getEntryExamStatus(self):
@@ -1418,6 +1441,15 @@
         print "_handleEntryExamStatus", returned, result
         if returned:
-            self._entryExamButton.set_sensitive(not result.entryExamPassed)
+            self._entryExamLink = result.entryExamLink
+            self._updateEntryExamStatus(result.entryExamPassed)
             self._getEntryExamStatus()
+
+    def _updateEntryExamStatus(self, passed):
+        """Update the entry exam status display and button."""
+        self._entryExamStatus.set_text(xstr("student_entry_exam_passed")
+                                       if passed else
+                                       xstr("student_entry_exam_not_passed"))
+        self._entryExamStatus.set_use_markup(True)
+        self._entryExamButton.set_sensitive(not passed)
 
 #-----------------------------------------------------------------------------
Index: src/mlx/rpc.py
===================================================================
--- src/mlx/rpc.py	(revision 761)
+++ src/mlx/rpc.py	(revision 764)
@@ -261,5 +261,6 @@
         value = self._performCall(lambda sessionID:
                                   self._server.getEntryExamStatus(sessionID))
-        return (value["entryExamPassed"], value["checkFlightStatus"])
+        return (value["entryExamPassed"], value["entryExamLink"],
+                value["checkFlightStatus"])
 
     def getFleet(self):
Index: src/mlx/web.py
===================================================================
--- src/mlx/web.py	(revision 761)
+++ src/mlx/web.py	(revision 764)
@@ -739,5 +739,6 @@
                 reply = self._client.getEntryExamStatus()
                 result.entryExamPassed = reply[0]
-                result.checkFlightStatus = reply[1]
+                result.entryExamLink = reply[1]
+                result.checkFlightStatus = reply[2]
 
         return result
@@ -758,5 +759,6 @@
 
         result.entryExamPassed = reply[0]
-        result.checkFlightStatus = reply[1]
+        result.entryExamLink = reply[1]
+        result.checkFlightStatus = reply[2]
 
         return result
