Index: locale/en/mlx.po
===================================================================
--- locale/en/mlx.po	(revision 895)
+++ locale/en/mlx.po	(revision 899)
@@ -642,9 +642,15 @@
 "You can also query the ZFW reported by the simulator."
 
-msgid "payload_crew"
-msgstr "C_rew:"
-
-msgid "payload_crew_tooltip"
-msgstr "The number of the crew members on your flight."
+msgid "payload_cockpit_crew"
+msgstr "Cockpit c_rew:"
+
+msgid "payload_cockpit_crew_tooltip"
+msgstr "The number of the cockpit crew members on your flight."
+
+msgid "payload_cabin_crew"
+msgstr "Cabin cr_ew:"
+
+msgid "payload_cabin_crew_tooltip"
+msgstr "The number of the cabin crew members on your flight."
 
 msgid "payload_pax"
@@ -1500,6 +1506,9 @@
 "<b><span foreground=\"orange\">yellow</span></b>."
 
-msgid "weighthelp_crew"
-msgstr "Crew (%s):"
+msgid "weighthelp_cockpit_crew"
+msgstr "Cockpit crew (%s):"
+
+msgid "weighthelp_cabin_crew"
+msgstr "Cabin crew (%s):"
 
 msgid "weighthelp_pax"
Index: locale/hu/mlx.po
===================================================================
--- locale/hu/mlx.po	(revision 895)
+++ locale/hu/mlx.po	(revision 899)
@@ -646,9 +646,15 @@
 "Azt is ellenőrizheted, hogy a szimulátor milyen ZFW-t jelent."
 
-msgid "payload_crew"
-msgstr "_Legénység:"
-
-msgid "payload_crew_tooltip"
-msgstr "A legénység létszáma."
+msgid "payload_cockpit_crew"
+msgstr "_Pilóták:"
+
+msgid "payload_cockpit_crew_tooltip"
+msgstr "A pilóták létszáma."
+
+msgid "payload_cabin_crew"
+msgstr "_Utaskísérők:"
+
+msgid "payload_cabin_crew_tooltip"
+msgstr "A légiutaskísérők létszáma."
 
 msgid "payload_pax"
@@ -1503,6 +1509,9 @@
 "<b><span foreground=\"orange\">sárga</span></b> színben olvasható."
 
-msgid "weighthelp_crew"
-msgstr "Legénység (%s):"
+msgid "weighthelp_cockpit_crew"
+msgstr "Pilóták (%s):"
+
+msgid "weighthelp_cabin_crew"
+msgstr "Utaskísérők (%s):"
 
 msgid "weighthelp_pax"
Index: src/mlx/acft.py
===================================================================
--- src/mlx/acft.py	(revision 898)
+++ src/mlx/acft.py	(revision 899)
@@ -128,5 +128,7 @@
         self._landingAntiIceLineID = None
 
-        self.humanWeight = 82.0
+        self.cockpitCrewWeight = 85.0
+        self.cabinCrewWeight = 75.0
+        self.humanWeight = 84.0
 
         self.initialClimbSpeedAltitude = 1500
Index: src/mlx/flight.py
===================================================================
--- src/mlx/flight.py	(revision 846)
+++ src/mlx/flight.py	(revision 899)
@@ -152,7 +152,17 @@
 
     @property
+    def numCockpitCrew(self):
+        """Get the number of cockpit crew members on the flight."""
+        return self._gui.numCockpitCrew
+
+    @property
+    def numCabinCrew(self):
+        """Get the number of cabon crew members on the flight."""
+        return self._gui.numCabinCrew
+
+    @property
     def numCrew(self):
         """Get the number of crew members on the flight."""
-        return self._gui.numCrew
+        return self.numCockpitCrew + self.numCabinCrew
 
     @property
Index: src/mlx/gui/flight.py
===================================================================
--- src/mlx/gui/flight.py	(revision 872)
+++ src/mlx/gui/flight.py	(revision 899)
@@ -32,5 +32,5 @@
 #
 # This module implements the main tab of the application, the flight
-# wizard. The wizard consists of \ref Page "pages", that come one after the
+# wizard. The wizard consists of \ref Page "pages", that come one yafter the
 # other. As some pages might be skipped, the pages dynamically store the index
 # of the previous page so that going back to it is simpler. The \ref
@@ -2125,5 +2125,5 @@
                                   xscale = 0.0, yscale = 0.0)
 
-        table = gtk.Table(7, 3)
+        table = gtk.Table(8, 3)
         table.set_row_spacings(4)
         table.set_col_spacings(16)
@@ -2132,20 +2132,32 @@
         self.setMainWidget(alignment)
 
-        label = gtk.Label(xstr("payload_crew"))
+        label = gtk.Label(xstr("payload_cockpit_crew"))
         label.set_use_underline(True)
         label.set_alignment(0.0, 0.5)
         table.attach(label, 0, 1, 0, 1)
 
-        self._numCrew = IntegerEntry(defaultValue = 0)
-        self._numCrew.set_width_chars(6)
-        self._numCrew.connect("integer-changed", self._weightChanged)
-        self._numCrew.set_tooltip_text(xstr("payload_crew_tooltip"))
-        table.attach(self._numCrew, 1, 2, 0, 1)
-        label.set_mnemonic_widget(self._numCrew)
+        self._numCockpitCrew = IntegerEntry(defaultValue = 0)
+        self._numCockpitCrew.set_width_chars(6)
+        self._numCockpitCrew.connect("integer-changed", self._weightChanged)
+        self._numCockpitCrew.set_tooltip_text(xstr("payload_cockpit_crew_tooltip"))
+        table.attach(self._numCockpitCrew, 1, 2, 0, 1)
+        label.set_mnemonic_widget(self._numCockpitCrew)
+
+        label = gtk.Label(xstr("payload_cabin_crew"))
+        label.set_use_underline(True)
+        label.set_alignment(0.0, 0.5)
+        table.attach(label, 0, 1, 1, 2)
+
+        self._numCabinCrew = IntegerEntry(defaultValue = 0)
+        self._numCabinCrew.set_width_chars(6)
+        self._numCabinCrew.connect("integer-changed", self._weightChanged)
+        self._numCabinCrew.set_tooltip_text(xstr("payload_cabin_crew_tooltip"))
+        table.attach(self._numCabinCrew, 1, 2, 1, 2)
+        label.set_mnemonic_widget(self._numCabinCrew)
 
         label = gtk.Label(xstr("payload_pax"))
         label.set_use_underline(True)
         label.set_alignment(0.0, 0.5)
-        table.attach(label, 0, 1, 1, 2)
+        table.attach(label, 0, 1, 2, 3)
 
         self._numPassengers = IntegerEntry(defaultValue = 0)
@@ -2153,5 +2165,5 @@
         self._numPassengers.connect("integer-changed", self._weightChanged)
         self._numPassengers.set_tooltip_text(xstr("payload_pax_tooltip"))
-        table.attach(self._numPassengers, 1, 2, 1, 2)
+        table.attach(self._numPassengers, 1, 2, 2, 3)
         label.set_mnemonic_widget(self._numPassengers)
 
@@ -2159,5 +2171,5 @@
         label.set_use_underline(True)
         label.set_alignment(0.0, 0.5)
-        table.attach(label, 0, 1, 2, 3)
+        table.attach(label, 0, 1, 3, 4)
 
         self._bagWeight = IntegerEntry(defaultValue = 0)
@@ -2165,13 +2177,13 @@
         self._bagWeight.connect("integer-changed", self._weightChanged)
         self._bagWeight.set_tooltip_text(xstr("payload_bag_tooltip"))
-        table.attach(self._bagWeight, 1, 2, 2, 3)
+        table.attach(self._bagWeight, 1, 2, 3, 4)
         label.set_mnemonic_widget(self._bagWeight)
 
-        table.attach(gtk.Label("kg"), 2, 3, 2, 3)
+        table.attach(gtk.Label("kg"), 2, 3, 3, 4)
 
         label = gtk.Label(xstr("payload_cargo"))
         label.set_use_underline(True)
         label.set_alignment(0.0, 0.5)
-        table.attach(label, 0, 1, 3, 4)
+        table.attach(label, 0, 1, 4, 5)
 
         self._cargoWeight = IntegerEntry(defaultValue = 0)
@@ -2179,13 +2191,13 @@
         self._cargoWeight.connect("integer-changed", self._weightChanged)
         self._cargoWeight.set_tooltip_text(xstr("payload_cargo_tooltip"))
-        table.attach(self._cargoWeight, 1, 2, 3, 4)
+        table.attach(self._cargoWeight, 1, 2, 4, 5)
         label.set_mnemonic_widget(self._cargoWeight)
 
-        table.attach(gtk.Label("kg"), 2, 3, 3, 4)
+        table.attach(gtk.Label("kg"), 2, 3, 4, 5)
 
         label = gtk.Label(xstr("payload_mail"))
         label.set_use_underline(True)
         label.set_alignment(0.0, 0.5)
-        table.attach(label, 0, 1, 4, 5)
+        table.attach(label, 0, 1, 5, 6)
 
         self._mailWeight = IntegerEntry(defaultValue = 0)
@@ -2193,20 +2205,20 @@
         self._mailWeight.connect("integer-changed", self._weightChanged)
         self._mailWeight.set_tooltip_text(xstr("payload_mail_tooltip"))
-        table.attach(self._mailWeight, 1, 2, 4, 5)
+        table.attach(self._mailWeight, 1, 2, 5, 6)
         label.set_mnemonic_widget(self._mailWeight)
 
-        table.attach(gtk.Label("kg"), 2, 3, 4, 5)
+        table.attach(gtk.Label("kg"), 2, 3, 5, 6)
 
         label = gtk.Label("<b>" + xstr("payload_zfw") + "</b>")
         label.set_alignment(0.0, 0.5)
         label.set_use_markup(True)
-        table.attach(label, 0, 1, 5, 6)
+        table.attach(label, 0, 1, 6, 7)
 
         self._calculatedZFW = gtk.Label()
         self._calculatedZFW.set_width_chars(6)
         self._calculatedZFW.set_alignment(1.0, 0.5)
-        table.attach(self._calculatedZFW, 1, 2, 5, 6)
-
-        table.attach(gtk.Label("kg"), 2, 3, 5, 6)
+        table.attach(self._calculatedZFW, 1, 2, 6, 7)
+
+        table.attach(gtk.Label("kg"), 2, 3, 6, 7)
 
         self._zfwButton = gtk.Button(xstr("payload_fszfw"))
@@ -2214,13 +2226,13 @@
         self._zfwButton.connect("clicked", self._zfwRequested)
         self._zfwButton.set_tooltip_text(xstr("payload_fszfw_tooltip"))
-        table.attach(self._zfwButton, 0, 1, 6, 7)
+        table.attach(self._zfwButton, 0, 1, 7, 8)
 
         self._simulatorZFW = gtk.Label("-")
         self._simulatorZFW.set_width_chars(6)
         self._simulatorZFW.set_alignment(1.0, 0.5)
-        table.attach(self._simulatorZFW, 1, 2, 6, 7)
+        table.attach(self._simulatorZFW, 1, 2, 7, 8)
         self._simulatorZFWValue = None
 
-        table.attach(gtk.Label("kg"), 2, 3, 6, 7)
+        table.attach(gtk.Label("kg"), 2, 3, 7, 8)
 
         self.addCancelFlightButton()
@@ -2229,7 +2241,12 @@
 
     @property
-    def numCrew(self):
-        """The number of the crew members on the flight."""
-        return self._numCrew.get_int()
+    def numCockpitCrew(self):
+        """The number of the cockpit crew members on the flight."""
+        return self._numCockpitCrew.get_int()
+
+    @property
+    def numCabinCrew(self):
+        """The number of the cabin crew members on the flight."""
+        return self._numCabinCrew.get_int()
 
     @property
@@ -2256,7 +2273,14 @@
         """Setup the information."""
         bookedFlight = self._wizard._bookedFlight
-
-        self._numCrew.set_int(bookedFlight.numCrew)
-        self._numCrew.set_sensitive(True)
+        aircraft = self._wizard.gui._flight.aircraft
+
+        numCrew = bookedFlight.numCrew
+        numCockpitCrew = min(numCrew, aircraft.dowCockpit)
+        numCabinCrew = numCrew - numCockpitCrew
+
+        self._numCockpitCrew.set_int(numCockpitCrew)
+        self._numCockpitCrew.set_sensitive(True)
+        self._numCabinCrew.set_int(numCabinCrew)
+        self._numCabinCrew.set_sensitive(True)
         self._numPassengers.set_int(bookedFlight.numPassengers)
         self._numPassengers.set_sensitive(True)
@@ -2276,5 +2300,6 @@
     def finalize(self):
         """Finalize the payload page."""
-        self._numCrew.set_sensitive(False)
+        self._numCockpitCrew.set_sensitive(False)
+        self._numCabinCrew.set_sensitive(False)
         self._numPassengers.set_sensitive(False)
         self._bagWeight.set_sensitive(False)
@@ -2285,9 +2310,13 @@
     def calculateZFW(self):
         """Calculate the ZFW value."""
+        aircraft = self._wizard.gui._flight.aircraft
         zfw = self._wizard.gui._flight.aircraft.dow
-        zfw += (self._numCrew.get_int() + self._numPassengers.get_int()) * 82
+        zfw += (self.numCockpitCrew - aircraft.dowCockpit) * aircraft.cockpitCrewWeight
+        zfw += (self.numCabinCrew - aircraft.dowCabin) * aircraft.cabinCrewWeight
+        zfw += (self._numPassengers.get_int()) * aircraft.humanWeight
         zfw += self._bagWeight.get_int()
         zfw += self._cargoWeight.get_int()
         zfw += self._mailWeight.get_int()
+        zfw = int(zfw)
         return zfw
 
@@ -5541,7 +5570,12 @@
 
     @property
-    def numCrew(self):
-        """Get the number of crew members."""
-        return self._payloadPage.numCrew
+    def numCockpitCrew(self):
+        """Get the number of cockpit crew members."""
+        return self._payloadPage.numCockpitCrew
+
+    @property
+    def numCabinCrew(self):
+        """Get the number of cabin crew members."""
+        return self._payloadPage.numCabinCrew
 
     @property
@@ -5891,4 +5925,5 @@
                 self._loginResult = result
                 self.gui.loginSuccessful()
+                acft.setupTypes(result.aircraftTypes)
             else:
                 if isReload:
Index: src/mlx/gui/gui.py
===================================================================
--- src/mlx/gui/gui.py	(revision 869)
+++ src/mlx/gui/gui.py	(revision 899)
@@ -264,7 +264,12 @@
 
     @property
-    def numCrew(self):
-        """Get the number of crew members."""
-        return self._wizard.numCrew
+    def numCockpitCrew(self):
+        """Get the number of cockpit crew members."""
+        return self._wizard.numCockpitCrew
+
+    @property
+    def numCabinCrew(self):
+        """Get the number of cabin crew members."""
+        return self._wizard.numCabinCrew
 
     @property
Index: src/mlx/gui/weighthelp.py
===================================================================
--- src/mlx/gui/weighthelp.py	(revision 303)
+++ src/mlx/gui/weighthelp.py	(revision 899)
@@ -56,5 +56,5 @@
 
         
-        self._weightsTable = table = gtk.Table(16, 5)
+        self._weightsTable = table = gtk.Table(17, 5)
         table.set_homogeneous(False)
         table.set_row_spacings(4)
@@ -91,17 +91,33 @@
         
 
-        self._crewLabel = gtk.Label(xstr("weighthelp_crew") % ("99",))
-        alignment = gtk.Alignment(xalign = 0.0, yalign = 0.5,
-                                  xscale = 0.0, yscale = 0.0)
-        alignment.add(self._crewLabel)
+        self._cockpitCrewLabel = \
+          gtk.Label(xstr("weighthelp_cockpit_crew") % ("99",))
+        alignment = gtk.Alignment(xalign = 0.0, yalign = 0.5,
+                                  xscale = 0.0, yscale = 0.0)
+        alignment.add(self._cockpitCrewLabel)
         table.attach(alignment, 0, 1, 1, 2)
 
-        self._crewWeight = gtk.Label("0")
-        alignment = gtk.Alignment(xalign = 1.0, yalign = 0.5,
-                                  xscale = 0.0, yscale = 0.0)
-        alignment.add(self._crewWeight)
+        self._cockpitCrewWeight = gtk.Label("0")
+        alignment = gtk.Alignment(xalign = 1.0, yalign = 0.5,
+                                  xscale = 0.0, yscale = 0.0)
+        alignment.add(self._cockpitCrewWeight)
         table.attach(alignment, 1, 2, 1, 2)
         
         table.attach(gtk.Label("kg"), 2, 3, 1, 2)
+
+        self._cabinCrewLabel = \
+          gtk.Label(xstr("weighthelp_cabin_crew") % ("99",))
+        alignment = gtk.Alignment(xalign = 0.0, yalign = 0.5,
+                                  xscale = 0.0, yscale = 0.0)
+        alignment.add(self._cabinCrewLabel)
+        table.attach(alignment, 0, 1, 2, 3)
+
+        self._cabinCrewWeight = gtk.Label("0")
+        alignment = gtk.Alignment(xalign = 1.0, yalign = 0.5,
+                                  xscale = 0.0, yscale = 0.0)
+        alignment.add(self._cabinCrewWeight)
+        table.attach(alignment, 1, 2, 2, 3)
+        
+        table.attach(gtk.Label("kg"), 2, 3, 2, 3)
 
         text = xstr("weighthelp_pax") % ("999",)
@@ -112,5 +128,5 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._paxLabel)
-        table.attach(alignment, 0, 1, 2, 3)
+        table.attach(alignment, 0, 1, 3, 4)
 
         self._paxWeight = gtk.Label("20000")
@@ -118,7 +134,7 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._paxWeight)
-        table.attach(alignment, 1, 2, 2, 3)
-        
-        table.attach(gtk.Label("kg"), 2, 3, 2, 3)
+        table.attach(alignment, 1, 2, 3, 4)
+        
+        table.attach(gtk.Label("kg"), 2, 3, 3, 4)
         
         label = gtk.Label(xstr("weighthelp_baggage"))
@@ -126,5 +142,5 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(label)
-        table.attach(alignment, 0, 1, 3, 4)
+        table.attach(alignment, 0, 1, 4, 5)
 
         self._bagWeight = gtk.Label("2000")
@@ -132,7 +148,7 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._bagWeight)
-        table.attach(alignment, 1, 2, 3, 4)
-        
-        table.attach(gtk.Label("kg"), 2, 3, 3, 4)
+        table.attach(alignment, 1, 2, 4, 5)
+        
+        table.attach(gtk.Label("kg"), 2, 3, 4, 5)
         
         label = gtk.Label(xstr("weighthelp_cargo"))
@@ -140,5 +156,5 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(label)
-        table.attach(alignment, 0, 1, 4, 5)
+        table.attach(alignment, 0, 1, 5, 6)
 
         self._cargoWeight = gtk.Label("2000")
@@ -146,7 +162,7 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._cargoWeight)
-        table.attach(alignment, 1, 2, 4, 5)
-        
-        table.attach(gtk.Label("kg"), 2, 3, 4, 5)
+        table.attach(alignment, 1, 2, 5, 6)
+        
+        table.attach(gtk.Label("kg"), 2, 3, 5, 6)
         
         label = gtk.Label(xstr("weighthelp_mail"))
@@ -154,5 +170,5 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(label)
-        table.attach(alignment, 0, 1, 5, 6)
+        table.attach(alignment, 0, 1, 6, 7)
 
         self._mailWeight = gtk.Label("2000")
@@ -160,9 +176,9 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._mailWeight)
-        table.attach(alignment, 1, 2, 5, 6)
-        
-        table.attach(gtk.Label("kg"), 2, 3, 5, 6)
-
-        table.attach(gtk.HSeparator(), 1, 2, 6, 7)
+        table.attach(alignment, 1, 2, 6, 7)
+        
+        table.attach(gtk.Label("kg"), 2, 3, 6, 7)
+
+        table.attach(gtk.HSeparator(), 1, 2, 7, 8)
 
         label = gtk.Label("<b>" + xstr("weighthelp_payload") + "</b>")
@@ -171,5 +187,5 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(label)
-        table.attach(alignment, 0, 1, 7, 8)
+        table.attach(alignment, 0, 1, 8, 9)
 
         self._payload = gtk.Label("<b>32000</b>")
@@ -178,7 +194,7 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._payload)
-        table.attach(alignment, 1, 2, 7, 8)
-        
-        table.attach(gtk.Label("kg"), 2, 3, 7, 8)
+        table.attach(alignment, 1, 2, 8, 9)
+        
+        table.attach(gtk.Label("kg"), 2, 3, 8, 9)
 
         self._fsPayload = gtk.Label("<b>32001</b>")
@@ -187,7 +203,7 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._fsPayload)
-        table.attach(alignment, 3, 4, 7, 8)
-        
-        table.attach(gtk.Label("kg"), 4, 5, 7, 8)
+        table.attach(alignment, 3, 4, 8, 9)
+        
+        table.attach(gtk.Label("kg"), 4, 5, 8, 9)
 
         label = gtk.Label(xstr("weighthelp_dow"))
@@ -196,5 +212,5 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(label)
-        table.attach(alignment, 0, 1, 8, 9)
+        table.attach(alignment, 0, 1, 9, 10)
 
         self._dow = gtk.Label("35000")
@@ -202,7 +218,7 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._dow)
-        table.attach(alignment, 1, 2, 8, 9)
-        
-        table.attach(gtk.Label("kg"), 2, 3, 8, 9)
+        table.attach(alignment, 1, 2, 9, 10)
+        
+        table.attach(gtk.Label("kg"), 2, 3, 9, 10)
 
         self._fsDOW = gtk.Label("33012")
@@ -210,11 +226,11 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._fsDOW)
-        table.attach(alignment, 3, 4, 8, 9)
-        
-        table.attach(gtk.Label("kg"), 4, 5, 8, 9)
-
-        table.attach(gtk.HSeparator(), 1, 2, 9, 10)
-
-        table.attach(gtk.HSeparator(), 3, 4, 9, 10)
+        table.attach(alignment, 3, 4, 9, 10)
+        
+        table.attach(gtk.Label("kg"), 4, 5, 9, 10)
+
+        table.attach(gtk.HSeparator(), 1, 2, 10, 11)
+
+        table.attach(gtk.HSeparator(), 3, 4, 10, 11)
 
         label = gtk.Label("<b>" + xstr("weighthelp_zfw") + "</b>")
@@ -223,5 +239,5 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(label)
-        table.attach(alignment, 0, 1, 10, 11)
+        table.attach(alignment, 0, 1, 11, 12)
 
         self._zfw = gtk.Label("<b>122000</b>")
@@ -230,7 +246,7 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._zfw)
-        table.attach(alignment, 1, 2, 10, 11)
-        
-        table.attach(gtk.Label("kg"), 2, 3, 10, 11)
+        table.attach(alignment, 1, 2, 11, 12)
+        
+        table.attach(gtk.Label("kg"), 2, 3, 11, 12)
 
         self._fsZFW = gtk.Label("<b>124000</b>")
@@ -239,9 +255,9 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._fsZFW)
-        table.attach(alignment, 3, 4, 10, 11)
-        
-        table.attach(gtk.Label("kg"), 4, 5, 10, 11)
-
-        table.attach(gtk.HSeparator(), 0, 5, 11, 12)
+        table.attach(alignment, 3, 4, 11, 12)
+        
+        table.attach(gtk.Label("kg"), 4, 5, 11, 12)
+
+        table.attach(gtk.HSeparator(), 0, 5, 12, 13)
         
         label = gtk.Label(xstr("weighthelp_gross"))
@@ -250,5 +266,5 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(label)
-        table.attach(alignment, 0, 1, 12, 13)
+        table.attach(alignment, 0, 1, 13, 14)
 
         self._fsGross = gtk.Label("124000")
@@ -256,7 +272,7 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._fsGross)
-        table.attach(alignment, 3, 4, 12, 13)
-        
-        table.attach(gtk.Label("kg"), 4, 5, 12, 13)
+        table.attach(alignment, 3, 4, 13, 14)
+        
+        table.attach(gtk.Label("kg"), 4, 5, 13, 14)
 
         label = gtk.Label(xstr("weighthelp_mzfw"))
@@ -265,5 +281,5 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(label)
-        table.attach(alignment, 0, 1, 13, 14)
+        table.attach(alignment, 0, 1, 14, 15)
 
         self._mzfw = gtk.Label("35000")
@@ -271,7 +287,7 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._mzfw)
-        table.attach(alignment, 1, 2, 13, 14)
-        
-        table.attach(gtk.Label("kg"), 2, 3, 13, 14)
+        table.attach(alignment, 1, 2, 14, 15)
+        
+        table.attach(gtk.Label("kg"), 2, 3, 14, 15)
 
         label = gtk.Label(xstr("weighthelp_mtow"))
@@ -280,5 +296,5 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(label)
-        table.attach(alignment, 0, 1, 14, 15)
+        table.attach(alignment, 0, 1, 15, 16)
 
         self._mtow = gtk.Label("35000")
@@ -286,7 +302,7 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._mtow)
-        table.attach(alignment, 1, 2, 14, 15)
-        
-        table.attach(gtk.Label("kg"), 2, 3, 14, 15)
+        table.attach(alignment, 1, 2, 15, 16)
+        
+        table.attach(gtk.Label("kg"), 2, 3, 15, 16)
 
         label = gtk.Label(xstr("weighthelp_mlw"))
@@ -295,5 +311,5 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(label)
-        table.attach(alignment, 0, 1, 15, 16)
+        table.attach(alignment, 0, 1, 16, 17)
 
         self._mlw = gtk.Label("35000")
@@ -301,7 +317,7 @@
                                   xscale = 0.0, yscale = 0.0)
         alignment.add(self._mlw)
-        table.attach(alignment, 1, 2, 15, 16)
-        
-        table.attach(gtk.Label("kg"), 2, 3, 15, 16)
+        table.attach(alignment, 1, 2, 16, 17)
+        
+        table.attach(gtk.Label("kg"), 2, 3, 16, 17)
 
         self.show_all()
@@ -322,7 +338,12 @@
         self._weightsTable.set_sensitive(False)
         
-        self._crew = -1
+        self._cockpitCrew = -1
+        self._cabinCrew = -1
         self._pax = -1
-        self._humanWeight = 82.0
+        self._dowCockpit = 2
+        self._cockpitCrewMemberWeight = 85.0
+        self._dowCabin = 2
+        self._cabinCrewMemberWeight = 75.0
+        self._humanWeight = 84.0
         self._bag = -1
         self._cargo = -1
@@ -343,11 +364,21 @@
     def _setupCalculated(self):
         """Setup the labels for the calculated values."""
-        if self._crew<0:
-            self._crewLabel.set_text(xstr("weighthelp_crew") % ("-",))
-            self._crewWeight.set_text("-")
-        else:
-            self._crewLabel.set_text(xstr("weighthelp_crew") % (str(self._crew),))
-            crewWeight = self._crew * self._humanWeight
-            self._crewWeight.set_text("%.0f" % (crewWeight,))
+        if self._cockpitCrew<0:
+            self._cockpitCrewLabel.set_text(xstr("weighthelp_cockpit_crew") % ("-",))
+            self._cockpitCrewWeight.set_text("-")
+        else:
+            self._cockpitCrewLabel.set_text(xstr("weighthelp_cockpit_crew") %
+                                            (str(self._cockpitCrew),))
+            crewWeight = (self._cockpitCrew - self._dowCockpit) * self._cockpitCrewMemberWeight
+            self._cockpitCrewWeight.set_text("%.0f" % (crewWeight,))
+            
+        if self._cabinCrew<0:
+            self._cabinCrewLabel.set_text(xstr("weighthelp_cabin_crew") % ("-",))
+            self._cabinCrewWeight.set_text("-")
+        else:
+            self._cabinCrewLabel.set_text(xstr("weighthelp_cabin_crew") %
+                                          (str(self._cabinCrew),))
+            crewWeight = (self._cabinCrew - self._dowCabin) * self._cabinCrewMemberWeight
+            self._cabinCrewWeight.set_text("%.0f" % (crewWeight,))
             
         if self._pax<0:
@@ -423,10 +454,15 @@
         It returns a tuple with these two items. If any of the items cannot be
         calculated, that is -1."""
-        if self._crew<0 or self._pax<0 or \
+        if self._cockpitCrew<0 or self._cabinCrew<0 or self._pax<0 or \
                self._bag<0 or self._cargo<0 or self._mail<0:
             payload = -1
         else:
-            payload = (self._crew + self._pax) * self._humanWeight + \
-                      self._bag + self._cargo + self._mail
+            payload = \
+              (self._cockpitCrew - self._dowCockpit) * \
+              self._cockpitCrewMemberWeight + \
+              (self._cabinCrew - self._dowCabin) * \
+              self._cabinCrewMemberWeight + \
+              self._pax * self._humanWeight + \
+              self._bag + self._cargo + self._mail
 
         if payload<0 or self._dowValue<0:
@@ -444,5 +480,6 @@
         self._gui.logger.untimedMessage("The weight calculation help function was used by the pilot")
 
-        self._crew = self._gui.numCrew
+        self._cockpitCrew = self._gui.numCockpitCrew
+        self._cabinCrew = self._gui.numCabinCrew
         self._pax = self._gui.numPassengers
         self._bag = self._gui.bagWeight
@@ -451,4 +488,8 @@
         
         aircraft = self._gui.flight.aircraft
+        self._dowCockpit = aircraft.dowCockpit
+        self._cockpitCrewMemberWeight = aircraft.cockpitCrewWeight
+        self._dowCabin = aircraft.dowCabin
+        self._cabinCrewMemberWeight = aircraft.cabinCrewWeight
         self._humanWeight = aircraft.humanWeight
         self._dowValue = aircraft.dow
