Modern flexible manufacturing systems (FMS) are highly automated and flexible in which raw parts of various types are processed concurrently. Deadlock issue arises easily in these systems due to shared equipment usage and high production flexibility. It was indicated in Wysk et al . (Wysk, R., Yang, N. and Joshi, S., Detection of deadlocks in flexible manufacturing cells. IEEE Trans. Rob. Auto., 1991, 7, 853–859.) that when a manufacturing system is modelled by a digraph, existence of circuits in such a graph is a necessary condition for deadlock. Deadlock avoidance for systems with free choice in part routing has been well studied in the Petri net formalism, however, we have not found that it has been studied systematically in the digraph formalism. Because of choices introduced, part flow dynamics become much more complex. Based on our previous work Zhang et al . (Zhang, W., Judd, R.P. and Paul P., Evaluating order of circuits for deadlock avoidance in a flexible manufacturing system. Int. J. Prod. Res., 2006, 44, 5247–5259.), this paper presents a deadlock avoidance algorithm for FMS, which allows free choices in part routing by calculation of effective free space of circuits of the digraph model. The algorithm is highly permissive since the effective free space calculation captures more parts flow dynamics, especially when there exist multiple knots in the digraph model. And it runs in polynomial time once the set of circuits of the digraph is computed offline. Simulation results on selected examples are given. †This paper is an extended version of Zhang and Judd (2005) published in the Proceedings of 2005 American Control Conference, Portland, OR.