If the system preference 'ReservesControlBranch' is set to "Check the [item's home library] to see if the patron can place a hold on the item.", the sub CanBookBeReserved does not count holds on bilio level. This is because there is no information about to which branch a biblio item hold should refer. The behaviour affects: - putting holds from OPAC (if RequestOnOpac is set to "[Allow] patrons to place holds on items from the OPAC." (Seems always to be an biblio level hold) - putting holds in staff interface for "Next available item" (= biblio level hold) Symptoms: In OPAC, patrons can put more holds than allowed for an item type (up to syspref 'maxreserve' = systemwide maximum holds) Same in staff client as long you do not put item level holds. With other words: You can put item level holds up to the maximum defined in the circulation rules and additionally biblio level holds up to the value set in 'maxreserve'. I think there is no way to overcome the situation (because a biblio has no home library, only items can have), but it should be documented e.g. in the text when setting the syspref 'ReservesContronBranch' and/or with a warning e.g. on the page where the circulation rules are set. I suppose that following Bugs could be related: Bug 6976 - User hold limit can be avoided by users in OPAC Bug 5159 - HomeOrHoldingBranch syspref description misleading Bug 4850 - CheckReserves does not respect holds circulation policies More?