A deadlock prevention policy is proposed for a class of Petri nets with uncontrollable transitions. It consists of two stages: siphon control and control-induced siphon control. At first stage, a monitor or control place is added for each elementary siphon such that it can never be unmarked. Due to the addition of monitors, new control-induced siphons are possibly generated in the augmented net. The second stage ensures that monitors are added to make always marked control-induced siphons without generating new control-induced siphons. The major difference of the proposed policy is that at each step the existence of uncontrollable transitions in a plant net model is considered. The results obtained in this paper show that elementary siphon based deadlock control policies are much more promising than those in the literature, particularly in coping with large-szied models. A flexible manufacturing example is utilized to illustrate the methods proposed.