Index: src/mlx/acft.py
===================================================================
--- src/mlx/acft.py	(revision 1043)
+++ src/mlx/acft.py	(revision 1087)
@@ -87,9 +87,17 @@
 class SimBriefData(object):
     """Data to be used when creating SimBrief briefings."""
-    def __init__(self, climbProfiles, cruiseProfiles, descentProfiles):
-        """Construct the SimBrief data with the given profiles."""
+    def __init__(self, climbProfiles, cruiseProfiles, descentProfiles,
+                 cruiseParameters = {}):
+        """Construct the SimBrief data with the given profiles.
+
+        cruiseParameters is a dictionary keyed by the cruise profile index. It
+        contains a tuple of:
+        - a boolean indicating if the parameter is mandatory,
+        - the name of the parameter for the SimBrief API
+        """
         self.climbProfiles = climbProfiles
         self.cruiseProfiles = cruiseProfiles
         self.descentProfiles = descentProfiles
+        self.cruiseParameters = cruiseParameters
 
 #---------------------------------------------------------------------------------------
@@ -743,5 +751,6 @@
         self.simBriefData = SimBriefData(["250/280/78"],
                                          ["CI", "M75", "M78", "M79", "M80", "LRC"],
-                                         ["78/280/250"])
+                                         ["78/280/250"],
+                                         cruiseParameters = {0: (False, "civalue")})
 
 #---------------------------------------------------------------------------------------
@@ -760,5 +769,6 @@
         self.simBriefData = SimBriefData(["250/280/78"],
                                          ["CI", "M75", "M78", "M79", "M80", "LRC"],
-                                         ["78/280/250", "78/250/250"])
+                                         ["78/280/250", "78/250/250"],
+                                         cruiseParameters = {0: (False, "civalue")})
 
 #---------------------------------------------------------------------------------------
@@ -777,5 +787,6 @@
         self.simBriefData = SimBriefData(["250/280/78"],
                                          ["CI", "M76", "M78", "M79", "M80", "LRC"],
-                                         ["78/280/250", "78/250/250"])
+                                         ["78/280/250", "78/250/250"],
+                                         cruiseParameters = {0: (False, "civalue")})
 
 #---------------------------------------------------------------------------------------
Index: src/mlx/gui/flight.py
===================================================================
--- src/mlx/gui/flight.py	(revision 1086)
+++ src/mlx/gui/flight.py	(revision 1087)
@@ -3380,6 +3380,15 @@
         self._cruiseProfile.add_attribute(renderer, "text", 0)
         self._cruiseProfile.set_tooltip_text(xstr("simbrief_cruise_profile_tooltip"))
+        self._cruiseProfile.connect("changed", self._cruiseProfileChanged)
         table.attach(self._cruiseProfile, 1, 2, row, row+1)
         label.set_mnemonic_widget(self._cruiseProfile)
+
+        self._cruiseParameter = Gtk.Entry()
+        self._cruiseParameter.set_width_chars(5)
+        self._cruiseParameter.set_tooltip_text(xstr("simbrief_cruise_parameter_tooltip"))
+        self._cruiseParameter.set_sensitive(False)
+        self._cruiseParameter.connect("changed", self._cruiseParameterChanged)
+        table.attach(self._cruiseParameter, 2, 3, row, row+1)
+
         row += 1
 
@@ -3454,6 +3463,17 @@
         """Update the sensitivity of the forward button."""
         self._button.set_sensitive(True)
-        self._button.set_sensitive(len(self._userName.get_text())>0 and
-                                   len(self._password.get_text())>0)
+
+        sensitive = not self._useInternalBrowser.get_active() or \
+           (len(self._userName.get_text())>0 and
+            len(self._password.get_text())>0)
+        if sensitive:
+            simBriefData = self._wizard.gui.flight.aircraft.simBriefData
+            cruiseProfileIndex = self._cruiseProfile.get_active()
+            sensitive = \
+                cruiseProfileIndex not in simBriefData.cruiseParameters or \
+                not simBriefData.cruiseParameters[cruiseProfileIndex][0] or \
+                len(self._cruiseParameter.get_text())>0
+
+        self._button.set_sensitive(sensitive)
 
     def _backClicked(self, button):
@@ -3517,4 +3537,5 @@
         self._climbProfile.set_sensitive(False)
         self._cruiseProfile.set_sensitive(False)
+        self._cruiseParameter.set_sensitive(False)
         self._descentProfile.set_sensitive(False)
 
@@ -3694,4 +3715,11 @@
             plan[key] = value
 
+        cruiseParameters = self._wizard.gui.flight.aircraft.simBriefData.cruiseParameters
+        cruiseProfileIndex = self._cruiseProfile.get_active()
+        if cruiseProfileIndex in cruiseParameters:
+            value = self._cruiseParameter.get_text()
+            if value:
+                plan[cruiseParameters[cruiseProfileIndex][1]] = value
+
         return plan
 
@@ -3730,4 +3758,22 @@
         should be converted to uppercase."""
         entry.set_text(entry.get_text().upper())
+
+    def _cruiseProfileChanged(self, comboBox):
+        """Called when the cruise profile has changed.
+
+        It updates the sensitivity of the cruise parameter entry field"""
+        simBriefData = self._wizard.gui.flight.aircraft.simBriefData
+
+        activeIndex = self._cruiseProfile.get_active()
+        self._cruiseParameter.set_sensitive(activeIndex in
+                                            simBriefData.cruiseParameters)
+
+        self._updateForwardButton()
+
+    def _cruiseParameterChanged(self, entry):
+        """Called when the cruise parameter has changed.
+
+        The sensitivty of the Forward button will be updated"""
+        self._updateForwardButton()
 
     def _getResults(self, link):
