diff --git a/mpod.cpp b/mpod.cpp
index dac908170f1824f2bb6d1fcb379747176b88c8e5..08ec1a0a3bc82dce49052d3b80cca910dc9b7e2b 100644
--- a/mpod.cpp
+++ b/mpod.cpp
@@ -260,6 +260,12 @@ void setChannelStateAndWait(const IPAddress *ipAddr, const uint16_t channel, con
 
         delay(MPOD_UPDATE_LATENCY);
         snmp.loop();
+        if (mpod.getChannel() != channel) {
+            // We have stale information, because MPOD swallowed UDP request.
+            // Skip this update check and go for next iteration, where data will be requested
+            // or request resent.
+            continue;
+        }
         loopCount += 1;
         ramping = (mpod.isRampingUp() || mpod.isRampingDown());
         if (!ramping) {