A decentralized supervisory controller design approach, using overlapping decompositions, is proposed for discrete-event systems modelled by Petri nets to avoid deadlock. In this approach, the given original Petri net is first decomposed into overlapping Petri subnets. A controller for each disjoint Petri subnet is then designed. A controller for the expanded Petri net is next obtained by combining these controllers in a certain way. In the final phase, the controller obtained for the expanded Petri net is contracted in a certain way to obtain a controller for the original Petri net. It is proved that this final controller avoids deadlock in the original Petri net.