         >(msg, sW);
     // Reenable interrupt line.
     PrimaryRadio.pauseInterrupts(false);
-    OTV0P2BASE::MemoryChecks::fnExit(3U);
     return (success);
 }
+#ifndef V0P2_DEBUG_NO_MESSAGE_QUEUE
 OTRadioLink::OTMessageQueueHandler< pollIO, V0P2_UART_BAUD,
                                     decodeAndHandleSecureFrame, OTRadioLink::decodeAndHandleDummyFrame  // only interested in single frame type.
                                    > messageQueue;
+#else
+OTRadioLink::OTMessageQueueHandlerNull messageQueue;
+#endif
 
 
 // Do bare stats transmission.

    // Try if very near to end of cycle and thus causing an overrun.
    // Conversely, if not true, should have time to safely log outputs, etc.
    const uint8_t nearOverrunThreshold = OTV0P2BASE::GSCT_MAX - 8; // ~64ms/~32 serial TX chars of grace time...

    OTV0P2BASE::MemoryChecks::fnExit(0U);

    // Sleep in low-power mode (waiting for interrupts) until seconds roll.
    // NOTE: sleep at the top of the loop to minimise timing jitter/delay from Arduino background activity after loop() returns.

    // Handler routine not required/expected to 'clear' this interrupt.
    if((changes & RFM23B_INT_MASK) && !(pins & RFM23B_INT_MASK))
        { PrimaryRadio._handleInterruptNonVirtual(); }
}

// Previous state of port D pins to help detect changes.
