In order for fault tree analysis (FTA) to be useful in the assessment and control of risk, the synthesis of the trees should be: 1) Routine -- so that project engineers, etc. will use it. 2) Rapid -- so that it won't slow down the project. 3) Accurate -- so that the results will have some meaningful relationship to the actual risk. 4) Flexible -- so that the synthesis procedure could be used on a wide range of systems. We present an algorithm which uses directed graph (digraph) models of the cause and effect relationships between variables and events. Given the models, the algorithm will deduce the combinatorially correct fault tree for the system. The models and the algorithm are described and tested on two examples.