      * RX module hops to next channel after frame has been received
      */
 #ifdef DEVICE_MODE_RX
-    hopFrequency(radioState, true, radioState->lastReceivedChannel);
+    hopFrequency(radioState, true, radioState->lastReceivedChannel, millis());
     radioState->failedDwellsCount = 0; // We received a frame, so we can just reset this counter
     LoRa.receive(); //Put radio back into receive mode
 #endif

         * In case of TX module, hop right now
         */
#ifdef DEVICE_MODE_TX
        hopFrequency(&radioState, true, radioState.channel);
#endif

        LoRa.receive();

    return (RADIO_CHANNEL_COUNT + channel - RADIO_HOP_OFFSET) % RADIO_CHANNEL_COUNT;
}

void hopFrequency(volatile RadioState_t *radioState, bool forward, uint8_t fromChannel, uint32_t timestamp) {
    radioState->channelEntryMillis = timestamp;

    if (forward) {
        radioState->channel = getNextChannel(fromChannel);
