In this paper, we propose a controller-assisted distributed (CAD) load-balancing mechanism for the ZigBee network containing multiple personal area networks (PANs). Shifting the enforcement part from the central controller to PANs, each PAN in CAD maintains its load status whereas the central controller simply maintains node numbers of PANs and a list of switch pairs which each is formed from two nodes nearby in different PANs, denoting a possible load switch between the two PANs. Upon perceiving a network unbalanced, the controller just provides a heavy-loaded PAN a switch pair and an offload threshold so that the PAN enforces the offload of a subtree onto a neighbor PAN. The number of nodes in subtree may be exactly smaller than the threshold due to maintenance situation in PAN. Simulation results show that CAD achieves a same load balancing result as a centralized method which outperforms other methods, yet costing fewer control messages.