--- device.c.old 2005-08-29 21:28:28.000000000 +0200 +++ device.c 2005-08-29 21:14:57.000000000 +0200 @@ -286,15 +286,15 @@ for (int i = 0; i < numDevices; i++) { bool ndr; if (device[i]->ProvidesChannel(Channel, Priority, &ndr)) { // this device is basicly able to do the job - if (device[i]->Receiving() && !ndr) + if (device[i]->Receiving(Priority >= 0) && !ndr) pri = 0; // receiving and allows additional receivers else if (d && !device[i]->Receiving() && device[i]->ProvidesCa(Channel) < d->ProvidesCa(Channel)) pri = 1; // free and fewer Ca's - else if (!device[i]->Receiving() && !device[i]->HasDecoder()) + else if (!device[i]->Receiving(Priority >= 0) && !device[i]->HasDecoder()) pri = 2; // free and not a full featured card - else if (!device[i]->Receiving() && !device[i]->IsPrimaryDevice()) + else if (!device[i]->Receiving(Priority >= 0) && !device[i]->IsPrimaryDevice()) pri = 3; // free and not the primary device - else if (!device[i]->Receiving()) + else if (!device[i]->Receiving(Priority >= 0)) pri = 4; // free else if (d && device[i]->Priority() < d->Priority()) pri = 5; // receiving but priority is lower