--- dhcp-4.1.0.org/server/mdb.c 2008-02-28 22:21:56.000000000 +0100 +++ dhcp-4.1.0/server/mdb.c 2009-01-28 23:46:02.000000000 +0100 @@ -1236,9 +1236,12 @@ /* Figure out which queue it's on. */ switch (comp -> binding_state) { case FTS_FREE: - lq = &comp -> pool -> free; - if (!(comp->flags & RESERVED_LEASE)) + if (comp->flags & RESERVED_LEASE) { + lq = &comp -> pool -> reserved; + } else { + lq = &comp -> pool -> free; comp->pool->free_leases--; + } #if defined(FAILOVER_PROTOCOL) do_pool_check = 1; @@ -1260,9 +1263,12 @@ break; case FTS_BACKUP: - lq = &comp -> pool -> backup; - if (!(comp->flags & RESERVED_LEASE)) + if (comp->flags & RESERVED_LEASE) { + lq = &comp -> pool -> reserved; + } else { + lq = &comp -> pool -> backup; comp->pool->backup_leases--; + } #if defined(FAILOVER_PROTOCOL) do_pool_check = 1;