/video0/pwroff get the parameters from VDR: VDR shutdown delay now 1:1117634400 2:3702 3:88 4:Do It Yourself - S.O.S. 5:0 that is time msi:~/video# date -d "1970-01-01 1117634400 sec" Wed Jun 1 15:00:00 CEST 2005 the timer is: msi:~/video# grep Yourself /video0/timers.conf 1:T-8468-8705-16403:MTWTF--:1600:1701:50:3:Do It Yourself - S.O.S.: Jun 1 15:15:56 msi vdr[5722]: executing '/video0/pwroff 1117634400 2644 88 "Do It Yourself - S.O.S." 0' Jun 1 15:15:56 msi pwroff: VDR shutdown 1:1117634400 2:2644 3:88 4:Do It Yourself - S.O.S. 5:0 A:1117634400 2644 88 Do It Yourself - S.O.S. 0 Jun 1 15:15:57 msi pwroff: wrong wakeup time 1117634400! It seems that VDR finds the right timer, but calcutes the time in second wrong! Again: The most beloved problem: Reentrancy... cString TimeToString(time_t t) { char buffer[32]; if (ctime_r(&t, buffer)) { buffer[strlen(buffer) - 1] = 0; // strip trailing newline return buffer; } return "???"; } It's no good idea to deference a variable on the stack OUTSIDE the function it self... It might work but is not really better than a static and is not relyable! Having a deja vue: I thought all that was "overworked" with the "thread-save" patches 3 month ago? ere old soruces fed back to cvs? Making it "static" violates multithreading... the fastest: Make it like in ctime_r an define a buffer pint as parameter the slowest: use the ugly aprintf and don't forget to free the memory... Rainer---<=====> Vertraulich // // <=====>--------------ocholl, Kiel, Germany ------------