Just to see what happens, I enabled warnings in C4/Reserves.pm. All of the warnings were of the form

Subroutine * redefined at C4/Reserves.pm line *.

This is happening because of circular dependencies, e.g. 

    C4/Reserves.pm

uses

    C4::Members
    C4::Circulation

Those modules in turn use C4::Reserves. None of the functions used in these modules is actually called in C4::Reserves, but removing the calls to use C4::Members and use C4::Circulation from C4/Reserves.pm isn't enough, apparently there's a deeper circular dependency there.

I suspect that there are a number of unnecessary 'use' statements peppered throughout the C4 namespace; cleaning those up might fix the problem entirely, or at least allow us to resolve any remaining circular dependencies easily.

--Barton