Index: src/mlx/acft.py
===================================================================
--- src/mlx/acft.py	(revision 340)
+++ src/mlx/acft.py	(revision 344)
@@ -138,4 +138,5 @@
 
         self._checkers.append(checks.SpeedChecker())
+        #self._checkers.append(checks.NoStrobeSpeedChecker())
         self._checkers.append(checks.VSChecker())
 
Index: src/mlx/checks.py
===================================================================
--- src/mlx/checks.py	(revision 341)
+++ src/mlx/checks.py	(revision 344)
@@ -56,6 +56,5 @@
                 aircraft.setStage(state, const.STAGE_PUSHANDTAXI)
         elif stage==const.STAGE_PUSHANDTAXI or stage==const.STAGE_RTO:
-            if state.landingLightsOn or state.strobeLightsOn or \
-               state.groundSpeed>80.0:
+            if state.landingLightsOn or state.strobeLightsOn:
                 aircraft.setStage(state, const.STAGE_TAKEOFF)
         elif stage==const.STAGE_TAKEOFF:
@@ -1285,4 +1284,14 @@
 class SpeedChecker(SimpleFaultChecker):
     """Check if the speed is in the prescribed limits."""
+    @staticmethod
+    def logSpeedFault(flight, state):
+        """Log the speed fault."""
+        message = "Taxi speed over %.0f %s" % \
+                  (flight.speedFromKnots(50), flight.getEnglishSpeedUnit())
+        flight.handleFault((SpeedChecker, flight.stage), state.timestamp,
+                           FaultChecker._appendDuring(flight, message),
+                           FaultChecker._getLinearScore(50, 80, 10, 15,
+                                                        state.groundSpeed))
+
     def isCondition(self, flight, aircraft, oldState, state):
         """Check if the fault condition holds."""
@@ -1293,10 +1302,53 @@
     def logFault(self, flight, aircraft, logger, oldState, state):
         """Log the fault."""
-        message = "Taxi speed over %.0f %s" % \
-                  (flight.speedFromKnots(50), flight.getEnglishSpeedUnit())
-        flight.handleFault(SpeedChecker, state.timestamp,
-                           FaultChecker._appendDuring(flight, message),
-                           FaultChecker._getLinearScore(50, 80, 10, 15,
-                                                        state.groundSpeed))
+        self.logSpeedFault(flight, state)
+
+#---------------------------------------------------------------------------------------
+
+class NoStrobeSpeedChecker(StateChecker):
+    """Checker for the ground speed of aircraft that have no strobe lights by
+    which to detect the takeoff stage.
+
+    If, during the PUSHANDTAXI stage the speed exceeds 50 knots, the state as
+    saved as a provisional takeoff state. If the speed then decreases below 50
+    knots, or the plane remains on the ground for more than 20 seconds, a taxi
+    speed error is logged with the highest ground speed detected.
+
+    If the plane becomes airborne within 20 seconds, the stage becomes TAKEOFF,
+    and the previously saved takeoff state is logged.
+
+    During the TAXIAFTERLAND stage, speed is checked as in case of
+    SpeedChecker."""
+    def __init__(self):
+        """Initialize the speed checker."""
+        self._takeoffState = None
+        self._highestSpeedState = None
+
+    def check(self, flight, aircraft, logger, oldState, state):
+        """Check the state as described above."""
+        if flight.stage==const.STAGE_PUSHANDTAXI:
+            self._checkPushAndTaxi(flight, aircraft, state)
+        elif flight.stage==const.STAGE_TAXIAFTERLAND:
+            if state.groundSpeed>50:
+                SpeedChecker.logSpeedFault(flight, state)
+
+    def _checkPushAndTaxi(self, flight, aircraft, state):
+        """Check the speed during the push and taxi stage."""
+        if state.groundSpeed>50:
+            if self._takeoffState is None:
+                self._takeoffState = state
+                self._highestSpeedState = state
+            else:
+                if state.groundSpeed>self._highestSpeedState.groundSpeed:
+                    self._highestSpeedState = state
+
+                if state.timestamp > (self._takeoffState.timestamp + 20):
+                    SpeedChecker.logSpeedFault(flight, self._highestSpeedState)
+                elif not state.onTheGround:
+                    aircraft.setStage(self._takeoffState, const.STAGE_TAKEOFF)
+                    self._takeoffState = None
+        elif self._takeoffState is not None:
+            SpeedChecker.logSpeedFault(flight, self._highestSpeedState)
+            self._takeoffState = None
 
 #---------------------------------------------------------------------------------------
Index: test/test1.txt
===================================================================
--- test/test1.txt	(revision 335)
+++ test/test1.txt	(revision 344)
@@ -1,2 +1,4 @@
+set onTheGround=yes
+set gs=0
 set xpdrC=1
 set lights=0
@@ -7,4 +9,5 @@
 set nav1=115.9
 set adf1=382
+set parking=yes
 set parking=no
 set gs=10 ias=10
