diff -urN igmpproxy-0.1-orig/src/igmpproxy.c igmpproxy-0.1/src/igmpproxy.c
--- igmpproxy-0.1-orig/src/igmpproxy.c	2010-06-02 14:26:28.000000000 +0800
+++ igmpproxy-0.1/src/igmpproxy.c	2010-06-02 14:21:45.000000000 +0800
@@ -315,6 +315,12 @@
             }
             difftime.tv_sec = curtime.tv_sec - lasttime.tv_sec;
             difftime.tv_usec += curtime.tv_usec - lasttime.tv_usec;
+
+			if(difftime.tv_sec >= INTERVAL_QUERY || curtime.tv_sec < lasttime.tv_sec){ //ntp changed
+				lasttime = curtime;
+				secs = -1;
+				break;
+			}
             while (difftime.tv_usec > 1000000) {
                 difftime.tv_sec++;
                 difftime.tv_usec -= 1000000;
