Peter Juszack wrote: > - corrected thread termination to avoid several problems ( reported by > C.Y.M ) There's another problem. It's not allowed to use Skins.Message() from within a thread other than the main thread. You should use QueueMessage() (available since vdr 1.3.37) instead (see attached patch). You may need to add some ifdef's to check for the correct vdr version. I'm afraid the Interface->Status() code for VDR < 1.3.14 will not work either. bye, Tobias -------------- next part -------------- --- vdr-plugin-eggtimer-0.9.2.orig/background.c +++ vdr-plugin-eggtimer-0.9.2/background.c @@ -71,7 +71,7 @@ #if VDRVERSNUM < 10314 Interface->Error( tr("Eggtimer: could not switch channel") ); #else - Skins.Message( mtError, tr("Eggtimer: could not switch channel") ); + Skins.QueueMessage( mtError, tr("Eggtimer: could not switch channel") ); #endif } @@ -94,9 +94,7 @@ usleep( Setup.OSDMessageTime * 1000); Interface->Status( NULL ); #else - Skins.Message( mtStatus, eggtimer->msg ); - cCondWait::SleepMs( Setup.OSDMessageTime * 1000); - Skins.Message( mtStatus, NULL ); + Skins.QueueMessage( mtInfo, eggtimer->msg, 0, -1); #endif // remember time when message was displayed lastInfo = now; @@ -116,7 +114,7 @@ #if VDRVERSNUM < 10314 Interface->Error( tr("Eggtimer: command not found") ); #else - Skins.Message( mtError, tr("Eggtimer: command not found") ); + Skins.QueueMessage( mtError, tr("Eggtimer: command not found") ); #endif leaveLoop = true; // Stop eggtimer thread } break;