diff -Nru vdr-1.6.0/vdr.c vdr-1.6.0-reelchannelscan/vdr.c --- vdr-1.6.0/vdr.c 2008-03-24 15:08:01.000000000 +0100 +++ vdr-1.6.0-reelchannelscan/vdr.c 2008-03-24 15:08:37.000000000 +0100 @@ -742,7 +742,12 @@ // Make sure we have a visible programme in case device usage has changed: if (!EITScanner.Active() && cDevice::PrimaryDevice()->HasDecoder() && !cDevice::PrimaryDevice()->HasProgramme()) { static time_t lastTime = 0; - if ((!Menu || CheckHasProgramme) && Now - lastTime > MINCHANNELWAIT) { // !Menu to avoid interfering with the CAM if a CAM menu is open + bool reelChannelscanIsScanningOnReceivingDevice; + if (!cPluginManager::CallFirstService("ReelChannelscan::IsScanningOnReceivingDevice", &reelChannelscanIsScanningOnReceivingDevice)) + { + reelChannelscanIsScanningOnReceivingDevice = false; + } + if (!reelChannelscanIsScanningOnReceivingDevice && (!Menu || CheckHasProgramme) && Now - lastTime > MINCHANNELWAIT) { // !Menu to avoid interfering with the CAM if a CAM menu is open cChannel *Channel = Channels.GetByNumber(cDevice::CurrentChannel()); if (Channel && (Channel->Vpid() || Channel->Apid(0))) { if (!Channels.SwitchTo(cDevice::CurrentChannel()) // try to switch to the original channel...