Index: src/mlx/acft.py
===================================================================
--- src/mlx/acft.py	(revision 526)
+++ src/mlx/acft.py	(revision 539)
@@ -113,4 +113,6 @@
         self.reverseMinSpeed = 60
 
+        self.needNoStrobeSpeedCheck = False
+
         self._checkers = []
 
@@ -178,5 +180,6 @@
         self._checkers.append(checks.PayloadChecker())
 
-        self._appendSpeedChecker()
+        self._checkers.append(checks.NoStrobeSpeedChecker())
+        self._checkers.append(checks.SpeedChecker())
         self._checkers.append(checks.VSChecker())
 
@@ -480,10 +483,4 @@
         self._checkers.append(checks.StrobeLightsChecker())
 
-    def _appendSpeedChecker(self):
-        """Append the speed checker.
-
-        This default implementation used the SpeedChecker."""
-        self._checkers.append(checks.SpeedChecker())
-
     def _speedToLog(self, speed):
         """Convert the given speed (being either None or expressed in the
@@ -651,10 +648,4 @@
         """Get the derate type for this type."""
         return DERATE_BOEING
-
-    # def _appendSpeedChecker(self):
-    #     """Append the NoStrobeSpeedChecker to the checkers.
-
-    #     FOR TESTING ONLY, THIS FUNCTION SHOULD NORMALLY BE COMMENTED OUT!!!"""
-    #     self._checkers.append(checks.NoStrobeSpeedChecker())
 
 #---------------------------------------------------------------------------------------
@@ -906,4 +897,6 @@
         self.reverseMinSpeed = 50
 
+        self.needNoStrobeSpeedCheck = True
+
     @property
     def derateType(self):
@@ -927,8 +920,4 @@
         self._checkers.append(checks.LandingLightsChecker())
         self._checkers.append(checks.NavLightsChecker())
-
-    def _appendSpeedChecker(self):
-        """Append the NoStrobeSpeedChecker to the checkers."""
-        self._checkers.append(checks.NoStrobeSpeedChecker())
 
 #---------------------------------------------------------------------------------------
@@ -954,4 +943,6 @@
         self.reverseMinSpeed = 50
 
+        self.needNoStrobeSpeedCheck = True
+
     @property
     def speedInKnots(self):
@@ -975,8 +966,4 @@
         self._checkers.append(checks.LandingLightsChecker())
         self._checkers.append(checks.NavLightsChecker())
-
-    def _appendSpeedChecker(self):
-        """Append the NoStrobeSpeedChecker to the checkers."""
-        self._checkers.append(checks.NoStrobeSpeedChecker())
 
 #---------------------------------------------------------------------------------------
@@ -1000,4 +987,6 @@
                                  35 : 135 }
 
+        self.needNoStrobeSpeedCheck = True
+
     @property
     def speedInKnots(self):
@@ -1021,8 +1010,4 @@
         self._checkers.append(checks.LandingLightsChecker())
         self._checkers.append(checks.NavLightsChecker())
-
-    def _appendSpeedChecker(self):
-        """Append the NoStrobeSpeedChecker to the checkers."""
-        self._checkers.append(checks.NoStrobeSpeedChecker())
 
 #---------------------------------------------------------------------------------------
Index: src/mlx/checks.py
===================================================================
--- src/mlx/checks.py	(revision 529)
+++ src/mlx/checks.py	(revision 539)
@@ -1342,4 +1342,11 @@
     """Check if the speed is in the prescribed limits."""
     @staticmethod
+    def needNoStrobe(aircraft, state):
+        """Determine if the given aircraft and state needs a strobeless speed
+        checking."""
+        return aircraft.needNoStrobeSpeedCheck or \
+               (state.strobeLightsOn is None and state.xpdrC is None)
+
+    @staticmethod
     def logSpeedFault(flight, state, stage = None, updateID = None):
         """Log the speed fault."""
@@ -1356,7 +1363,8 @@
     def isCondition(self, flight, aircraft, oldState, state):
         """Check if the fault condition holds."""
-        return flight.stage in [const.STAGE_PUSHANDTAXI,
-                                const.STAGE_RTO,
-                                const.STAGE_TAXIAFTERLAND] and \
+        return not self.needNoStrobe(aircraft, state) and \
+            flight.stage in [const.STAGE_PUSHANDTAXI,
+                             const.STAGE_RTO,
+                             const.STAGE_TAXIAFTERLAND] and \
             state.groundSpeed>50
 
@@ -1389,12 +1397,13 @@
     def check(self, flight, aircraft, logger, oldState, state):
         """Check the state as described above."""
-        if flight.stage==const.STAGE_PUSHANDTAXI or \
-           flight.stage==const.STAGE_RTO:
-            self._checkPushAndTaxi(flight, aircraft, state)
-        elif flight.stage==const.STAGE_TAXIAFTERLAND:
-            if state.groundSpeed>50:
-                SpeedChecker.logSpeedFault(flight, state)
-        else:
-            self._takeoffState = None
+        if SpeedChecker.needNoStrobe(aircraft, state):
+            if flight.stage==const.STAGE_PUSHANDTAXI or \
+               flight.stage==const.STAGE_RTO:
+                self._checkPushAndTaxi(flight, aircraft, state)
+            elif flight.stage==const.STAGE_TAXIAFTERLAND:
+                if state.groundSpeed>50:
+                    SpeedChecker.logSpeedFault(flight, state)
+            else:
+                self._takeoffState = None
 
     def _checkPushAndTaxi(self, flight, aircraft, state):
Index: src/mlx/fsuipc.py
===================================================================
--- src/mlx/fsuipc.py	(revision 535)
+++ src/mlx/fsuipc.py	(revision 539)
@@ -1626,4 +1626,18 @@
         return "FSUIPC/Generic Boeing 737"
 
+    # Note: the function below should be enabled if testing the speed-based
+    # takeoff on Linux
+    # def getAircraftState(self, aircraft, timestamp, data):
+    #     """Get the aircraft state.
+
+    #     Get it from the parent, and then check some PMDG-specific stuff."""
+    #     state = super(B737Model, self).getAircraftState(aircraft,
+    #                                                     timestamp,
+    #                                                     data)
+    #     state.strobeLightsOn = None
+    #     state.xpdrC = None
+
+    #     return state
+
 #------------------------------------------------------------------------------
 
@@ -1690,12 +1704,19 @@
             apalthold = data[self._pmdgidx_apalthold]
             state.apAltitudeHold = apalthold>=3 and apalthold<=6
+            state.xpdrC = data[self._pmdgidx_xpdr]==4
+
+            # Uncomment the following to test the speed-based takeoff
+            # state.strobeLightsOn = None
+            # state.xpdrC = None
         else:
             state.apMaster = data[self._pmdgidx_cmda]!=0
             state.apHeadingHold = data[self._pmdgidx_aphdgsel]!=0
             state.apAltitudeHold = data[self._pmdgidx_apalthold]!=0
-            #state.strobeLightsOn = data[self._pmdgidx_lts_positionsw]==0x02
+
+            # state.strobeLightsOn = data[self._pmdgidx_lts_positionsw]==0x02
+            # state.xpdrC = data[self._pmdgidx_xpdr]==4
             state.strobeLightsOn = None
-
-        state.xpdrC = data[self._pmdgidx_xpdr]==4
+            state.xpdrC = None
+
         state.apHeading = data[self._pmdgidx_aphdg]
         state.apAltitude = data[self._pmdgidx_apalt]
