diff --git a/vdr.c b/vdr.c
index 34560e7..c47cf90 100644
--- a/vdr.c
+++ b/vdr.c
@@ -891,7 +891,10 @@ int main(int argc, char *argv[])
                         if (!d->Receiving() && d->ProvidesTransponder(Timer->Channel()) && Now - DeviceUsed[d->DeviceNumber()] > TIMERDEVICETIMEOUT)
                            Device = d; // use the actual device as a last resort
                         }
-                     // Switch the device to the transponder:
+                     if (!Device && InVpsMargin && !DeviceAvailable) {
+						 Device = cDevice::GetDevice(Timer->Channel(), Timer->Priority(), false);
+					    }
+						                      // Switch the device to the transponder:
                      if (Device) {
                         if (!Device->IsTunedToTransponder(Timer->Channel())) {
                            if (Device == cDevice::ActualDevice() && !Device->IsPrimaryDevice())
