Index: locale/en/mlx.po
===================================================================
--- locale/en/mlx.po	(revision 284)
+++ locale/en/mlx.po	(revision 303)
@@ -485,18 +485,30 @@
 msgstr "Crew:"
 
+msgid "payload_crew_tooltip"
+msgstr "The number of the crew members on your flight."
+
 msgid "payload_pax"
 msgstr "Passengers:"
 
+msgid "payload_pax_tooltip"
+msgstr "The number of passengers on your flight."
+
 msgid "payload_bag"
 msgstr "Baggage:"
 
+msgid "payload_bag_tooltip"
+msgstr "The weight of the baggage on your flight."
+
 msgid "payload_cargo"
 msgstr "_Cargo:"
 
 msgid "payload_cargo_tooltip"
-msgstr "The weight of the cargo for your flight."
+msgstr "The weight of the cargo on your flight."
 
 msgid "payload_mail"
 msgstr "Mail:"
+
+msgid "payload_mail_tooltip"
+msgstr "The weight of the mail on your flight."
 
 msgid "payload_zfw"
Index: src/mlx/flight.py
===================================================================
--- src/mlx/flight.py	(revision 298)
+++ src/mlx/flight.py	(revision 303)
@@ -89,7 +89,27 @@
 
     @property
+    def numCrew(self):
+        """Get the number of crew members on the flight."""
+        return self._gui.numCrew
+
+    @property
+    def numPassengers(self):
+        """Get the number of passengers on the flight."""
+        return self._gui.numPassengers
+
+    @property
+    def bagWeight(self):
+        """Get the baggage weight for the flight."""
+        return self._gui.bagWeight
+
+    @property
     def cargoWeight(self):
         """Get the cargo weight for the flight."""
         return self._gui.cargoWeight
+
+    @property
+    def mailWeight(self):
+        """Get the mail weight for the flight."""
+        return self._gui.mailWeight
 
     @property
Index: src/mlx/gui/flight.py
===================================================================
--- src/mlx/gui/flight.py	(revision 300)
+++ src/mlx/gui/flight.py	(revision 303)
@@ -1016,8 +1016,10 @@
         table.attach(label, 0, 1, 0, 1)
 
-        self._numCrew = gtk.Label()
+        self._numCrew = IntegerEntry(defaultValue = 0)
         self._numCrew.set_width_chars(6)
-        self._numCrew.set_alignment(1.0, 0.5)
+        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)
         
         label = gtk.Label(xstr("payload_pax"))
@@ -1025,8 +1027,10 @@
         table.attach(label, 0, 1, 1, 2)
 
-        self._numPassengers = gtk.Label()
+        self._numPassengers = IntegerEntry(defaultValue = 0)        
         self._numPassengers.set_width_chars(6)
-        self._numPassengers.set_alignment(1.0, 0.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)
+        label.set_mnemonic_widget(self._numPassengers)
         
         label = gtk.Label(xstr("payload_bag"))
@@ -1034,8 +1038,10 @@
         table.attach(label, 0, 1, 2, 3)
 
-        self._bagWeight = gtk.Label()
+        self._bagWeight = IntegerEntry(defaultValue = 0)
         self._bagWeight.set_width_chars(6)
-        self._bagWeight.set_alignment(1.0, 0.5)
+        self._bagWeight.connect("integer-changed", self._weightChanged)
+        self._bagWeight.set_tooltip_text(xstr("payload_bag_tooltip"))
         table.attach(self._bagWeight, 1, 2, 2, 3)
+        label.set_mnemonic_widget(self._bagWeight)
 
         table.attach(gtk.Label("kg"), 2, 3, 2, 3)
@@ -1048,5 +1054,5 @@
         self._cargoWeight = IntegerEntry(defaultValue = 0)
         self._cargoWeight.set_width_chars(6)
-        self._cargoWeight.connect("integer-changed", self._cargoWeightChanged)
+        self._cargoWeight.connect("integer-changed", self._weightChanged)
         self._cargoWeight.set_tooltip_text(xstr("payload_cargo_tooltip"))
         table.attach(self._cargoWeight, 1, 2, 3, 4)
@@ -1059,8 +1065,10 @@
         table.attach(label, 0, 1, 4, 5)
 
-        self._mailWeight = gtk.Label()
+        self._mailWeight = IntegerEntry(defaultValue = 0)
         self._mailWeight.set_width_chars(6)
-        self._mailWeight.set_alignment(1.0, 0.5)
+        self._mailWeight.connect("integer-changed", self._weightChanged)
+        self._mailWeight.set_tooltip_text(xstr("payload_mail_tooltip"))
         table.attach(self._mailWeight, 1, 2, 4, 5)
+        label.set_mnemonic_widget(self._mailWeight)
 
         table.attach(gtk.Label("kg"), 2, 3, 4, 5)
@@ -1097,17 +1105,44 @@
 
     @property
+    def numCrew(self):
+        """The number of the crew members on the flight."""
+        return self._numCrew.get_int()
+        
+    @property
+    def numPassengers(self):
+        """The number of the passengers on the flight."""
+        return self._numPassengers.get_int()
+        
+    @property
+    def bagWeight(self):
+        """Get the bag weight entered."""
+        return self._bagWeight.get_int()
+
+    @property
     def cargoWeight(self):
         """Get the cargo weight entered."""
         return self._cargoWeight.get_int()
 
+    @property
+    def mailWeight(self):
+        """Get the bag weight entered."""
+        return self._mailWeight.get_int()
+
     def activate(self):
         """Setup the information."""
         bookedFlight = self._wizard._bookedFlight
-        self._numCrew.set_text(str(bookedFlight.numCrew))
-        self._numPassengers.set_text(str(bookedFlight.numPassengers))
-        self._bagWeight.set_text(str(bookedFlight.bagWeight))
+
+        self._numCrew.set_int(bookedFlight.numCrew)
+        self._numCrew.set_sensitive(True)
+        self._numPassengers.set_int(bookedFlight.numPassengers)
+        self._numPassengers.set_sensitive(True)
+
+        self._bagWeight.set_int(bookedFlight.bagWeight)
+        self._bagWeight.set_sensitive(True)
         self._cargoWeight.set_int(bookedFlight.cargoWeight)
         self._cargoWeight.set_sensitive(True)
-        self._mailWeight.set_text(str(bookedFlight.mailWeight))
+        self._mailWeight.set_int(bookedFlight.mailWeight)
+        self._mailWeight.set_sensitive(True)
+        
         self._simulatorZFW.set_text("-")
         self._simulatorZFWValue = None
@@ -1117,5 +1152,9 @@
     def finalize(self):
         """Finalize the payload page."""
+        self._numCrew.set_sensitive(False)
+        self._numPassengers.set_sensitive(False)
+        self._bagWeight.set_sensitive(False)
         self._cargoWeight.set_sensitive(False)
+        self._mailWeight.set_sensitive(False)
         self._wizard.gui.initializeWeightHelp()
 
@@ -1123,9 +1162,8 @@
         """Calculate the ZFW value."""
         zfw = self._wizard.gui._flight.aircraft.dow
-        bookedFlight = self._wizard._bookedFlight
-        zfw += (bookedFlight.numCrew + bookedFlight.numPassengers) * 82
-        zfw += bookedFlight.bagWeight
+        zfw += (self._numCrew.get_int() + self._numPassengers.get_int()) * 82
+        zfw += self._bagWeight.get_int()
         zfw += self._cargoWeight.get_int()
-        zfw += bookedFlight.mailWeight
+        zfw += self._mailWeight.get_int()
         return zfw
         
@@ -1142,6 +1180,6 @@
         self._calculatedZFW.set_markup(markupBegin + str(zfw) + markupEnd)
 
-    def _cargoWeightChanged(self, entry, weight):
-        """Called when the cargo weight has changed."""
+    def _weightChanged(self, entry, weight):
+        """Called when one of the weight values or humanm counts has changed."""
         self._updateCalculatedZFW()
             
@@ -2849,7 +2887,27 @@
 
     @property
+    def numCrew(self):
+        """Get the number of crew members."""
+        return self._payloadPage.numCrew
+
+    @property
+    def numPassengers(self):
+        """Get the number of passengers."""
+        return self._payloadPage.numPassengers
+
+    @property
+    def bagWeight(self):
+        """Get the baggage weight."""
+        return self._payloadPage.bagWeight
+
+    @property
     def cargoWeight(self):
-        """Get the calculated ZFW value."""
+        """Get the cargo weight."""
         return self._payloadPage.cargoWeight
+
+    @property
+    def mailWeight(self):
+        """Get the mail weight."""
+        return self._payloadPage.mailWeight
 
     @property
Index: src/mlx/gui/gui.py
===================================================================
--- src/mlx/gui/gui.py	(revision 300)
+++ src/mlx/gui/gui.py	(revision 303)
@@ -223,7 +223,27 @@
 
     @property
+    def numCrew(self):
+        """Get the number of crew members."""
+        return self._wizard.numCrew
+
+    @property
+    def numPassengers(self):
+        """Get the number of passengers."""
+        return self._wizard.numPassengers
+
+    @property
+    def bagWeight(self):
+        """Get the bag weight."""
+        return self._wizard.bagWeight
+
+    @property
     def cargoWeight(self):
         """Get the cargo weight."""
         return self._wizard.cargoWeight
+
+    @property
+    def mailWeight(self):
+        """Get the mail weight."""
+        return self._wizard.mailWeight
 
     @property
Index: src/mlx/gui/pirep.py
===================================================================
--- src/mlx/gui/pirep.py	(revision 300)
+++ src/mlx/gui/pirep.py	(revision 303)
@@ -228,5 +228,9 @@
             self._rating.set_text("%.1f %%" % (rating,))
 
+        self._flownNumCrew.set_text("%d" % (pirep.numCrew,))
+        self._flownNumPassengers.set_text("%d" % (pirep.numPassengers,))
+        self._flownBagWeight.set_text("%.0f" % (pirep.bagWeight,))
         self._flownCargoWeight.set_text("%.0f" % (pirep.cargoWeight,))
+        self._flownMailWeight.set_text("%.0f" % (pirep.mailWeight,))
         self._flightType.set_text(xstr("flighttype_" + 
                                        flightType2string(pirep.flightType)))
@@ -526,22 +530,44 @@
         """Build the frame for the miscellaneous data."""        
         (frame, mainBox) = PIREPViewer.createFrame(xstr("pirepView_frame_miscellaneous"))
-        
-        dataBox = gtk.HBox()
-        mainBox.pack_start(dataBox, False, False, 0)
-        
+
+        table = gtk.Table(3, 2)
+        mainBox.pack_start(table, False, False, 0)
+        table.set_row_spacings(4)
+        table.set_col_spacings(8)        
+        
+        self._flownNumPassengers = \
+            PIREPViewer.tableAttach(table, 0, 0,
+                                    xstr("pirepView_numPassengers"),
+                                    width = 4)
+
+        self._flownNumCrew = \
+            PIREPViewer.tableAttach(table, 1, 0,
+                                    xstr("pirepView_numCrew"),
+                                    width = 3)
+
+        self._flownBagWeight = \
+            PIREPViewer.tableAttach(table, 0, 1,
+                                    xstr("pirepView_bagWeight"),
+                                    width = 5)
+
         self._flownCargoWeight = \
-            PIREPViewer.addLabeledData(dataBox,
-                                       xstr("pirepView_cargoWeight"),
-                                       width = 6)
+            PIREPViewer.tableAttach(table, 1, 1,
+                                    xstr("pirepView_cargoWeight"),
+                                    width = 6)
+
+        self._flownMailWeight = \
+            PIREPViewer.tableAttach(table, 2, 1,
+                                    xstr("pirepView_mailWeight"),
+                                    width = 5)
 
         self._flightType = \
-            PIREPViewer.addLabeledData(dataBox,
-                                       xstr("pirepView_flightType"),
-                                       width = 15)
+            PIREPViewer.tableAttach(table, 0, 2,
+                                    xstr("pirepView_flightType"),
+                                    width = 15)
             
         self._online = \
-            PIREPViewer.addLabeledData(dataBox,
-                                       xstr("pirepView_online"),
-                                       width = 5)
+            PIREPViewer.tableAttach(table, 1, 2,
+                                    xstr("pirepView_online"),
+                                    width = 5)
 
         PIREPViewer.addVFiller(mainBox)
Index: src/mlx/gui/weighthelp.py
===================================================================
--- src/mlx/gui/weighthelp.py	(revision 300)
+++ src/mlx/gui/weighthelp.py	(revision 303)
@@ -444,10 +444,9 @@
         self._gui.logger.untimedMessage("The weight calculation help function was used by the pilot")
 
-        bookedFlight = self._gui.bookedFlight
-        self._crew = bookedFlight.numCrew
-        self._pax = bookedFlight.numPassengers
-        self._bag = bookedFlight.bagWeight
+        self._crew = self._gui.numCrew
+        self._pax = self._gui.numPassengers
+        self._bag = self._gui.bagWeight
         self._cargo = self._gui.cargoWeight
-        self._mail = bookedFlight.mailWeight
+        self._mail = self._gui.mailWeight
         
         aircraft = self._gui.flight.aircraft
Index: src/mlx/pirep.py
===================================================================
--- src/mlx/pirep.py	(revision 298)
+++ src/mlx/pirep.py	(revision 303)
@@ -41,5 +41,14 @@
         try:
             with open(path, "rb") as f:
-                return pickle.load(f)
+                pirep = pickle.load(f)
+                if "numCrew" not in dir(pirep):
+                    pirep.numCrew = pirep.bookedFlight.numCrew
+                if "numPassengers" not in dir(pirep):
+                    pirep.numPassengers = pirep.bookedFlight.numPassengers
+                if "bagWeight" not in dir(pirep):
+                    pirep.bagWeight = pirep.bookedFlight.bagWeight
+                if "mailWeight" not in dir(pirep):
+                    pirep.mailWeight = pirep.bookedFlight.mailWeight
+                return pirep
         except Exception, e:
             print "Failed loading PIREP from %s: %s" % (path, str(e))
@@ -49,5 +58,10 @@
         """Initialize the PIREP from the given flight."""
         self.bookedFlight = flight.bookedFlight
+
+        self.numCrew = flight.numCrew
+        self.numPassengers = flight.numPassengers
+        self.bagWeight = flight.bagWeight
         self.cargoWeight = flight.cargoWeight
+        self.mailWeight = flight.mailWeight
         
         self.filedCruiseAltitude = flight.filedCruiseAltitude
Index: src/mlx/web.py
===================================================================
--- src/mlx/web.py	(revision 298)
+++ src/mlx/web.py	(revision 303)
@@ -684,9 +684,9 @@
         data["depap"] = bookedFlight.departureICAO
         data["arrap"] = bookedFlight.arrivalICAO
-        data["pass"] = str(bookedFlight.numPassengers)
-        data["crew"] = str(bookedFlight.numCrew)
+        data["pass"] = str(pirep.numPassengers)
+        data["crew"] = str(pirep.numCrew)
         data["cargo"] = str(pirep.cargoWeight)
-        data["bag"] = str(bookedFlight.bagWeight)
-        data["mail"] = str(bookedFlight.mailWeight)
+        data["bag"] = str(pirep.bagWeight)
+        data["mail"] = str(pirep.mailWeight)
         
         data["flttype"] = SendPIREP._flightTypes[pirep.flightType]
