Hi all, I use the nice "set system time" feature of vdr. But sometimes vdr seems to read gabage time from DVB, jumps through the time and miss out timers. To avoid souch time warping, I use the assumption, that garbage values never be the same twice: eit.c, line 261 ff. ---------------------------------------------------------------------- cTDT::cTDT(const u_char *Data) :SI::TDT(Data, false) { CheckParse(); time_t sattim = getTime(); time_t loctim = time(NULL); static int lastDiff = 0; int diff = abs(sattim - loctim); if (diff > 2) { if (abs(diff - lastDiff) < 3) { mutex.Lock(); isyslog("System Time = %s (%ld)\n", *TimeToString(loctim), loctim); isyslog("Local Time = %s (%ld)\n", *TimeToString(sattim), sattim); if (stime(&sattim) < 0) esyslog("ERROR while setting system time: %m"); mutex.Unlock(); } else { isyslog("diff = %d, ignored to avoid time warp :)", diff); } lastDiff = diff; } } ---------------------------------------------------------------------- Kind regards Andreas B?ttger