Given a metabolic network in terms of its metabolites and reactions, our goal is to efficiently compute the minimal knock-out sets of reactions required to block a given behavior. We describe an algorithm that improves the computation of these knock-out sets when the elementary modes (minimal functional subsystems) of the network are given. We also describe an algorithm that computes both the knock-out sets and the elementary modes containing the blocked reactions directly from the description of the network and whose worst-case computational complexity is better than the algorithms currently in use for these problems. Computational results are included.