diff -Nru vdr-1.6.0/vdr.c vdr-1.6.0-reelchannelscan/vdr.c --- vdr-1.6.0/vdr.c 2008-09-07 18:23:02.000000000 +0200 +++ vdr-1.6.0-reelchannelscan/vdr.c 2008-09-07 18:23:53.000000000 +0200 @@ -741,7 +741,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...