diff -up cups-1.3.7/scheduler/classes.c.update-classes-on-remove cups-1.3.7/scheduler/classes.c --- cups-1.3.7/scheduler/classes.c.update-classes-on-remove 2008-01-16 23:42:35.000000000 +0000 +++ cups-1.3.7/scheduler/classes.c 2010-04-13 10:16:26.513092834 +0100 @@ -123,9 +123,7 @@ cupsdDeletePrinterFromClass( cupsd_printer_t *c, /* I - Class to delete from */ cupsd_printer_t *p) /* I - Printer to delete */ { - int i; /* Looping var */ - cups_ptype_t type, /* Class type */ - oldtype; /* Old class type */ + int i; /* Looping var */ /* @@ -155,27 +153,10 @@ cupsdDeletePrinterFromClass( return; /* - * Recompute the printer type mask as needed... + * * Update the IPP attributes (have to do this for member-names)... */ - if (c->num_printers > 0) - { - oldtype = c->type; - type = c->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT); - c->type = ~CUPS_PRINTER_REMOTE; - - for (i = 0; i < c->num_printers; i ++) - c->type &= c->printers[i]->type; - - c->type |= type; - - /* - * Update the IPP attributes... - */ - - if (c->type != oldtype) - cupsdSetPrinterAttrs(c); - } + cupsdSetPrinterAttrs(c); }