     sleep_mode();
   return ADC;
 }
+
+// The WDT is used solely to wake us from sleep
+#if defined(MINIMAL_POWER_MODE)
+static volatile bool _watchdogWaiting;
+ISR(WDT_vect) { _watchdogWaiting = false; }
 
 static void sleepPeriod(uint8_t wdt_period)
 {

    recvTime = millis();
    if ((long)(recvTime - timeout) >= 0)
    {
#if _DEBUG
      Serial.print(" f "); Serial.print(lost);
      Serial.print(" s "); Serial.print(sleepDur);
      Serial.print(" e "); Serial.print(_recvCycleAct);

      Serial.print(" r "); Serial.println(recvTime);
      Serial.flush();
#endif
      // double the window every N packets lost
      ++lost;
      if (lost % 2 == 0 && _recvWindow < MAX_RECV_WIN)
        _recvWindow *= 2;

      return false;
    }
  } while (!rf12_doWork());
